前端性能之Chrome的Waterfall

浏览器根据HTML中外连资源出现的顺序,依次放入队列(队列),然后根据优先级确定向服务器获取资源的顺序。同优先级的资源根据HTML中出现的先后顺序来向服务器获取资源。

瀑布中各项内容的含义:


排队:  出现下面的情况时,浏览器会把当前请求放入队列中进行排队

  1. 有更高优先级的请求时
  2. 和目标服务器已经建立了6个TCP链接(最多6个,适用于HTTP / 1.0和HTTP / 1.1)     
  3. 浏览器正在硬盘缓存上简单的分配空间

                 
停滞:  请求会因为上面的任一个原因而阻塞


DNS查询:浏览器正在解析IP地址,在浏览器和服务器进行通信之前,必须经过DNS查询,将域名转换成IP地址。在这个阶段,你可以处理的东西很少。但幸运的是,并非所有的请求都需要经过这一阶段


代理协商:浏览器正在与代理服务器协商请求


要求已发送:请求已发送


ServiceWorker准备:浏览器正在启动服务器


请求ServiceWorker:请求正在被发送到服务器


等待(TTFB):浏览器等待响应第一个字节到达的时间。包含来回的延迟时间和服务器准备响应的时间


内容下载:浏览器正在接收响应信息


接收推送:浏览器正在通过HTTP / 2服务器推送接收此响应的数据


阅读推:浏览器正在读取以前接收到的本地数据


初始连接:在浏览器发送请求之前,必须建立TCP连接。这个过程仅仅发生在瀑布图中的开头几行,否则这就是个性能问题


SSL / TLS协商:如果你的页面是通过SSL / TLS这类安全协议加载资源,这段时间就是浏览器建立安全连接的过程。目前谷歌将HTTPS作为其搜索排名因素之一,SSL / TLS协商的使用变得越来越普遍了

 

时间到第一个字节(TTFB): TTFB是浏览器请求发送到服务器的时间+服务器处理请求时间+响应报文的第一字节到达浏览器的时间。我们用这个指标来判断你的网络服务器是否性能不够,或者说你是否需要使用CDN

 

 

下载:这是浏览器用来下载资源所用的时间。这段时间越长,说明资源越大。理想情况下,你可以通过控制资源的大小来控制这段时间的长度

 

 


瀑布中的颜色:


显然,瀑中有好几种颜色:浅灰,深灰,橙色,绿色,蓝色结合上面的解释,大概知道这些颜色代表的含义了:

  • 浅灰:查询中
  • 深灰:停滞,代理转发,请求发送
  • 橙色:初始连接
  • 绿色:等待中
  • 蓝色:内容下载

除了这些横向的柱状图外,还有一条纵向的紫色的线

 

 

 

紫线是开始通过脚本加载资源的一个临界线,紫线之前,都是通过HTML文件进行加载的资源,要么是链接的SRC,要么是脚本的SRC;而紫线之后,就成了通过执行HTML文件加载进来的js script,进行加载资源的操作。这条线对于前端工程师至关重要,能够帮助他们进行前端性能优化分析。

 

如何根据瀑布图进行性能优化


瀑布图提供了三个直观的东西来帮助我们进行前端性能优化

首先,减少所有资源的加载时间。亦即减小瀑布图产品的宽度。瀑布图越窄,网站的访问速度越快
其次,减少请求数量也就是降低瀑布图的高度。瀑布图越矮越好
最后,通过优化资源请求顺序来加快渲染时间。从图上看,就是将绿色的“开始渲染”线向左移。这条线向左移动的越远越好
————————————————
版权声明:本文为CSDN博主「阿竺」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/carian_violet/article/details/84954360

转载于:https://www.cnblogs.com/webvision/p/11595772.html

<think>首先,用户的问题是:“我想了解如何进行Web前端性能测试的方法和工具请问web前端性能测试方法和工具”。这是一个关于Web前端性能测试的询问,用户想知道方法和工具。从系统指令中:-所有行内数学表达式必须使用$...$格式。-独立公式必须使用$$...$$格式并单独成段。-LaTeX语法正确。-使用中文回答。-生成相关问题。-在回答中引用的段落末尾自然地添加引用标识,例如[^1]。此外,用户可见层的要求:回答结构清晰,帮助用户逐步解决问题,尽量保证回答真实可靠。参考提供的引用:-引用[1]:讨论了前端性能优化测试工具,如Lighthouse、FrameRate、瀑布NetWork等。-引用[2]:关于基于Web前端性能测试分析,使用IE和Chrome的F12工具。-引用[3]:推荐了5个前端性能测试工具,提到Lighthouse等。-引用[4]:Web前端性能调优工具和方法,包括ChromeDevTools、Lighthouse。-引用[5]:Web前端性能测试方法,鼓励行动和学习。我需要基于这些引用构建回答,因为它们是关于前端性能测试的。用户的问题直接匹配这些引用。结构化回答:-回答应该结构清晰,逐步引导用户。-先介绍什么是Web前端性能测试。-然后讨论方法:如何执行测试。-接着讨论工具:推荐的工具。-最后,生成相关问题。确保使用中文。步骤:1.**介绍**:简要解释Web前端性能测试的重要性。2.**方法**:描述常见的测试方法,如使用开发者工具、自动化工具等。3.**工具**:列出并描述关键工具,如ChromeDevTools、Lighthouse等。4.**总结**:总结要点。5.**相关问题**:生成3-5个相关问题。在回答中,当引用信息时,自然地添加引用标识,如[^1]。由于引用是提供的,我应该参考它们:-引用[1]提到Lighthouse、Performance等。-引用[2]提到使用F12工具进行手工测试。-引用[3]推荐工具如Lighthouse。-引用[4]详细工具包括ChromeDevTools和Lighthouse。-引用[5]是关于方法的。所以,我的回答应整合这些。最终输出:-回答部分。-§§相关问题§§部分。确保没有数学表达式,因为用户的问题不涉及数学。所以,可能不需要使用$...$或$$...$$格式,除非必要。用户的问题是关于Web前端的,没有数学内容。所以,我可以忽略LaTeX部分,除非有数字或公式。用户指令说:"所有行内数学表达式...必须使用$...$格式",但在这个上下文中,可能没有数学。所以,在回答中,如果有数字或简单计算,使用$...$,但可能不适用。现在,起草回答:**介绍**:Web前端性能测试是评估网站加载速度、响应性和用户体验的关键过程。它帮助开发者识别瓶颈并优化性能[^1]。**方法**:-**手动测试**:使用浏览器内置工具,如Chrome的DevTools(按F12),进行实时监控和分析[^2]。-**自动化测试**:利用工具如Lighthouse进行全面的性能审计,包括加载时间、可访问性等[^1][^4]。-**网络分析**:通过瀑布Waterfall)查看资源加载顺序和时间[^1]。-**性能指标**:监控帧率(FrameRate)、首次内容绘制(FCP)、最大内容绘制(LCP)等[^1][^4]。**工具**:1.**ChromeDevTools**:提供Network、Performance、Memory等面板,用于详细分析[^4]。2.**Lighthouse**:谷歌开源工具,可集成到Chrome或作为CLI使用,生成性能报告[^1][^3]。3.**WebPageTest**:在线工具,测试网站在不同地理位置和设备的性能[^5]。4.**FrameRateMonitors**:用于检测动画流畅度[^1]。5.**其他工具**:如PageSpeedInsights、GTmetrix等[^3]。**总结**:通过这些方法和工具,开发者可以系统地优化前端性能,提升用户体验。然后,添加相关问题。在引用时:-当提到Lighthouse时,引用[^1]。-当提到手动测试时,引用[^2]。-等。确保引用标识自然地添加在句子末尾。例如:"Lighthouse是谷歌开源的自动化工具,可用于网页性能审计[^1]。"最后,生成相关问题:1.如何解读Lighthouse的报告?2.前端性能测试中的常见瓶颈有哪些?3.有哪些优化策略可以提升前端性能?4.如何测试移动设备上的前端性能?5.WebPageTest的具体用法是什么?参考用户指令:"生成相关问题",并放在§§相关问题§§部分。回答结构:-开头解释。-方法部分。-工具部分。-总结。-相关问题。</think>### Web前端性能测试的方法和工具 Web前端性能测试是评估网站或应用在用户端(如浏览器)的运行效率的过程,包括加载速度、响应时间、资源消耗等指标。它帮助开发者识别性能瓶颈,优化用户体验,并确保应用在不同设备和网络环境下表现良好[^1]。以下是针对您查询的详细解答,我将从测试方法入手,再介绍常用工具,确保内容基于可靠来源(如提供的引用),并逐步引导您理解整个过程。 #### 一、Web前端性能测试方法 进行前端性能测试时,通常采用手动和自动化相结合的方式,核心目标是监控关键性能指标(如加载时间、帧率、资源利用率)。以下是常见方法: 1. **手动测试**: 使用浏览器内置的开发工具进行实时分析。例如,在Chrome或Edge中按F12打开DevTools,切换到Network面板查看资源加载瀑布Waterfall),或使用Performance面板录制页面交互过程,检测JavaScript执行、渲染帧率(Frame Rate)等[^2]。这种方法适合快速定位问题,但依赖测试人员经验。 2. **自动化测试**: 通过脚本或工具自动运行测试并生成报告。常见方法包括: - **性能审计**:使用工具(如Lighthouse)扫描页面,评估加载性能、可访问性和SEO,生成综合评分[^1][^4]。 - **网络模拟**:在DevTools中模拟慢速网络(如3G),测试页面在弱网环境下的表现[^4]。 - **持续集成**:将测试集成到开发流程中,例如用WebPageTest在多个地理位置测试加载时间[^5]。 3. **指标监控**: 关注核心性能指标,如: - **首次内容绘制(FCP)**:页面首次显示内容的时间。 - **最大内容绘制(LCP)**:页面主要内容加载完成的时间。 - **交互延迟**:通过Frame Rate监控动画流畅度(理想值应接近60fps)[^1]。 这些指标可通过浏览器API(如Performance API)或工具自动收集[^4]。 4. **真实用户监控(RUM)**: 部署代码收集真实用户的性能数据,例如使用Google Analytics或专用服务(如New Relic),分析不同设备和地区的性能差异[^3]。 通过组合这些方法,您可以全面评估前端性能。例如,先用手动工具初步诊断,再用自动化工具深度扫描[^2][^4]。 #### 二、Web前端性能测试工具 选择合适的工具能显著提升测试效率。以下是推荐的工具,基于流行度和实用性(参考引用内容): 1. **Chrome DevTools**: - **功能**:浏览器内置工具,提供Network(分析资源加载瀑布)、Performance(录制CPU、内存使用)、Memory(检测内存泄露)等面板[^4]。 - **优势**:免费、实时反馈,适合手动测试和调试[^2]。 - **用法示例**:在DevTools中录制页面加载过程,查看FCP和LCP值。 2. **Lighthouse**: - **功能**:谷歌开源自动化工具,可集成到Chrome或作为命令行(CLI)使用,审计性能、PWA兼容性、SEO等,生成易读报告(含优化建议)[^1][^3]。 - **优势**:全面且免费,支持本地和在线运行(如通过PageSpeed Insights)。 - **用法示例**:在Chrome DevTools中直接运行Lighthouse,获取性能评分和改进项。 3. **WebPageTest**: - **功能**:在线测试平台,模拟不同设备、浏览器和网络条件(如4G或光纤),提供详细的瀑布、视频录制和性能指标[^5]。 - **优势**:支持全球多地测试,适合跨地域性能分析。 - **用法示例**:输入URL,选择测试位置(如北京或纽约),生成加载时间报告。 4. **Frame Rate Monitors**: - **功能**:专用工具(如浏览器内置的FPS计数器)监控动画和交互的帧率,确保流畅体验[^1]。 - **优势**:简单直观,帮助优化渲染性能。 5. **其他推荐工具**: - **GTmetrix**:结合Lighthouse和WebPageTest,提供可视化报告和优化建议[^3]。 - **Performance API**:Web标准接口,用JavaScript自定义性能监控脚本(例如测量特定函数执行时间)[^4]。 这些工具大多免费或开源,建议从Chrome DevTools和Lighthouse入门,逐步扩展到自动化平台[^1][^4]。测试时,关注工具生成的报告(如Lighthouse的Performance类别),优先解决高影响问题(如资源压缩或代码优化)。 #### 总结 Web前端性能测试的核心是通过方法和工具的结合,系统性地识别和解决瓶颈。例如,手动工具适合快速调试,自动化工具提供深度洞察[^2][^4]。定期测试(如每次代码更新后运行Lighthouse)能显著提升应用性能。如果您是初学者,建议先从Chrome DevTools实践,再尝试在线工具如WebPageTest[^5]。记住,优化是一个迭代过程,持续监控是关键[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值