【原文地址】https://developers.google.com/web/tools/chrome-devtools/profile/evaluate-performance/timeline-tool
该文章介绍了 Timeline 工具的基本组成以及如何使用该工具对页面事件进行记录,具体的调试细节还得更具读者的具体使用场景和调试目的对数据进行分析得到解决方案,该文章算是对 Chrome Timeline 工具的一个使用说明书。

使用 Chrome DevTools 的 Timeline 面板记录程序运行时的所有行为,并用于加以分析是解决程序性能问题的最好方案。

目录结构

  • Timeline面板概括(Timeline panel overview)
  • 开始一次记录(Make a recording)
  • 查看记录详细信息(View recording details)
  • 在记录期间获取页面截图信息(Capture screenshots during recording)
  • 分析 JavaScript(Profile JavaScript)
  • 分析 painting(Profile painting)
  • 在记录中查找(Search records)
  • Zoom in on a Timeline section
  • 保持和载入记录(Save and load recordings)

通过 Timeline 记录页面加载后所发生的各种事件和交互。
在 Overview 区域查看 FPS,CPU 和 网络请求信息
点击 Flame Chart 上的一个事件记录查看其详细信息
放大某一段记录,更利于分析

Timeline panel overview

Timeline 面板由一下 4 个子面板构成:

  1. 控制面板(Controls)
    开启记录,停止记录,配置记录期间需要记录那些内容。

  2. 概括(Overview)
    对页面表现(行为)的一个概述。

  3. Flame Chart
    可视化 CPU 堆栈(stack)信息记录
    在 Flame Chart 面板上你可能看到三根垂直的线,蓝线代表 DOMContentLoaded 事件,绿线代表渲染开始的时间( time to first paint),红线代表 load 事件。

  4. 详细信息(Detail)
    当有具体事件被选择时,该面板展示这个事件的更多详细信息。如果没有事件被选择,该面板展示当前所选时间段的一些信息。

Overview pane

概括区域由一下三个图形记录组成:

  1. FPS. Frames Per Second.
    绿色的柱越高, FPS 值也越高。FPS 图表上方的红色小块指明了长帧(long frame,较慢渲染?),这些 long frame 可能是卡顿(jank)

  2. CPU. CPU Resources.
    这个面积图(area chart)表明了哪种事件在消耗 CPU 资源。

  3. NET.
    每种不同颜色的条代表一种资源。这个条越长表明获取( retrieve )该资源所花的时间越长。

    每个条中的浅色部分代表等待时间(资源请求被发送到收到第一个响应字节的时间),深色部分代表文件传输时间(从收到第一个字节到这个资源完全被下载好)

    蓝色 代表 HTML 文件,黄色 代表 Script 文件,紫色 代表 Stylesheets 文件, 绿色 代表 Media 文件,灰色 代表其他资源。

Make a recording

  • 记录一个页面的loading过程
    打开 Timeline 面板,在当前 Tab 打开你想要记录的页面,然后刷新该页面,Timeline 面板会自动的记录一个页面的 reload。

  • 记录页面上的交互
    打开 Timeline 面板,点击该面板左上的 Record 按钮( ● ) 或者通过快捷键(Cmd + E/Ctrl + E) 开始记录。
    当 Timeline 正在记录页面事件时,Record 按钮会变成红色的。
    在记录期间进行一些想要分析的页面交互,当再次发送 Record 命令(●按钮,或键盘快捷方式)时会停止这次记录。

当记录停止过后,DevTools 会自动去分析那块内容是你最关心的,并且会自动的放大(选择)那块区域。

Recording Tips:

  • Keep recordings as short as possible.
    保持记录内容尽可能的少,通常越短的记录越利于分析。
  • Avoid unnecessary actions.
    避免一些你并不关心的无用的事件(比如:鼠标点击,网络加载)。比如,你希望分析的是点击 Login button 后的处理事件,就不要去滚动当前页面,加载更多的图片,或其他一些无关事件。
  • Disable the browser cache.
    当记录分析一些网络相关事件时,禁用浏览器的缓存是个不错的主意。你可以在 DevTools Settings 面板或者 Network conditions 面板禁用缓存。
  • Disable extensions.
    Chrome 浏览器扩展会在记录中添加一些不相关的 noise 到 Timeline 记录中。可以通过打开 隐身模式 或者创建一个新的浏览器用户来确保你的Chrome环境下没有扩展插件。

View recording details

当你在 Flame Chart 中选择一个具体的事件,Detail 区域会展示一些关于该事件的额外信息。

上图中的一些 tab,比如 Summay 对所有的事件都会有对应的展示信息,其他的一些 tab 只有对于某些特定的事件类型才有展示内容。可以通过查看 Timeline event reference 查看 tab 和事件类型的关系。

Capture screenshots during recording

TImeline 面板还可以在记录期间对页面进行截屏重现,这个特性就像幻灯片查看一样。

如果要对一个页面的进行截屏重现,现在 控制区域(Controls pane) 中勾选 Screenshots,然后开始记录,完成记录后,页面的截屏会展现在 概述面板(Overview pane)下方。

将鼠标移动到 概述区域 或 截屏 上可以查看到当前点上页面截屏放大的图像,左右移动鼠标来模拟记录期间页面的动态效果。

Profile JavaScript

在开始记录之前,在控制区域(Control pane)勾选 JS Profile,这样记录的时候就会去记录 JavaScript stacks 相关信息。这时你的 Flame Chart 中将会记录任何一个被调用过的方法。

Profile painting

和 Profile JavaScript 一样,你需要先在控制区域勾选 Paint 来在后面的记录中记录 Paint 事件,此时,当你在记录结果中选择一个 Paint 事件后,Paint Priflter 这个 tab 将会出现在 Details 区域,该 tab 将会展示更多当前关于当前事件的信息。

Rendering settings

打开 DevTools 的主菜单,选择 More tools > Rendering settings来配置一些 rendering settings,这些可能会对调试渲染问题很有帮助。开启 rendering settings 后,会在 Console drawer 旁边添加一个 Rendering tab。如果 Console drawer 没有展现在页面上,可通过 ESC 使其展示出来。

Search records

查看记录的事件时,你可能只希望关注于某一类型的事件,比如你只是希望查看每个 Parse HTML 事件的详细信息。

通过使用 Cmd + F/Ctrl + F快捷键,在 Timeline 区域中打开 搜索工具栏,在搜索工具栏中输入你想分析的事件类型,比如 Event.

工具栏只会将搜索条件作用在当前选择的时间表内的事件,在时间表外的事件都不会显示在结果中。

搜索工具栏中的上下箭头可以帮助你按事件发生的先后顺序查看过滤后的事件的详细信息。第一条记录代表当前选区最先发生的事件,最后一条记录代表当前选区最后发生的事件。每次点击上下箭头,就会选择一个新的事件,所以你可以在 Details 面板查看这个事件的具体信息。(点击上下箭头和在 Flame Chart 选择一个事件是等效的)

Zoom in on a Timeline section

指定某一个 Recording 结果区域,将会更有利于对记录数据的分析。可以通过在 Overview 区域选择某一块内容,来定位到某一块 recording 数据。当在 Overview 区域选择某一块内容后,Flame Chart 会自动定位到匹配的区域,并更清楚的展示对应内容。

可以通过下面的方式来指定选择一块区域:

  • 在 Overview 面板,通过鼠标拖选出关注的内容
  • 通过调整 ruler 区域的灰色滑块来选出关注的内容

一旦你选择了某一块内容,你可以使用 W, A, S, D 键来调整选区,W 和 S 用来放大放小选取,A 和 D 分别向左向右移动选区。(测试中没发现具体怎么使用,通过手动选区来实现这些功能)

Save and load recordings

你可以通过在 概述面板 或 Flame Chart 区域点击鼠标左键,在弹出的菜单中选择相关选项,实现Save 和 Load recordings。

 
 
转自:http://codecloud.net/18559.html
 
 
 
 
 
 
 
 

如何使用Chrome Timeline 工具(译)的更多相关文章

  1. Chrome 开发工具之Timeline

    之前有说到Element,Console,Sources大多运用于debug,Network可用于debug和查看性能,今天的主角Timeline更多的是用在性能优化方面,它的作用就是记录与分析应用程 ...

  2. Chrome开发者工具详解(3)-Timeline面板

    Chrome开发者工具详解(3)-Timeline面板 注: 这一篇主要讲解面板Timeline,参考了Google的相关文档,主要用于公司内部技术分享.. Timeline面板 Timeline面板 ...

  3. chrome开发者工具浅析--timeline

    一.概述                                                                                                 ...

  4. Chrome 开发者工具的Timeline和Profiles提高Web应用程序的性能

    Chrome 开发者工具的Timeline和Profiles提高Web应用程序的性能 二.减少 HTTP 的请求数    当用户浏览页面时,如果我们在用户第一次访问时将一些信息一次性加载到客户端缓存, ...

  5. Chrome渲染分析之Timeline工具的使用

    原文http://www.th7.cn/web/html-css/201406/42043.shtml Timeline工具栏提供了对于在装载你的Web应用的过程中,时间花费情况的概览,这些应用包括处 ...

  6. Chrome 开发工具之Timeline/Performance

    之前有说到Element,Console,Sources大多运用于debug,Network可用于debug和查看性能,今天的主角Timeline(现已更名Performance)更多的是用在性能优化 ...

  7. 【译】在 Chrome 开发者工具中调试 node.js

    原文链接 : Debugging Node.js in Chrome DevTools 原文作者 : MATT DESLAURIERS 译文出自 : 掘金翻译计划 译文链接 : https://git ...

  8. Chrome开发者工具不完全指南:(三、性能篇)

    卤煮在前面已经向大家介绍了Chrome开发者工具的一些功能面板,其中包括Elements.Network.Resources基础功能部分和Sources进阶功能部分,对于一般的网站项目来说,其实就是需 ...

  9. Chrome开发者工具不完全指南(四、性能进阶篇)

    前言 Profiles面板功能的作用主要是监控网页中各种方法执行时间和内存的变化,简单来说它就是Timeline的数字化版本.它的功能选项卡不是很多(只有三个),操作起来比较前面的几块功能版本来说简单 ...

随机推荐

  1. C# ListView 自定义ToolTip 显示

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  2. hdu1004

    Problem Description Contest time again! How excited it is to see balloons floating around. But to te ...

  3. 面向小白的JS笔记 - #Codecademy#学习笔记

    前言 最初浏览过<JavaScript秘密花园>,前一段时间读过一点点<JavaScript语言精粹>和一点点<JavaScript高级程序设计>(一点点是指都只是 ...

  4. c++ 顺序容器学习

    所谓容器,就是一个装东西的盒子,在c++中,我们把装的东西叫做“元素” 而顺序容器,就是说这些东西是有顺序的,你装进去是什么顺序,它们在里面就是什么顺序. c++中的顺序容器一共有这么几种: vect ...

  5. cookie httponly属性

    Marks the cookie as accessible only through the HTTP protocol. This means that the cookie won't be a ...

  6. web安全之ssrf

    ssrf(服务器端请求伪造)原理: 攻击者构造形成由服务端发起请求的一个漏洞.把服务端当作跳板来攻击其他服务,SSRF的攻击目标一般是外网无法访问到的内网 当服务端提供了从其他服务器获取数据的功能(如 ...

  7. Oracle执行时间与sql格式

    今天碰到一个很奇怪的问题,直接在eclipse中将sql拷出,然后直接粘贴复制在数据库中就会执行的非常慢,但是在利用plsql对sql语句进行格式整理之后,执行的速度就非常的快,之后我where条件中 ...

  8. UNITY5以后怎么改GUI文字

    提要:以前是UNITY4,后来用了新的UI,于是GUIText这种东西就没有了,研究了很久.... ---------------------------- 这里我想拖个GUI文字框显示FPS,于是代 ...

  9. certbot+nginx (仅用作个人纪录)

    https://certbot.eff.org/#centos6-nginx https://github.com/kshcherban/acme-nginx server { listen 80; ...

  10. 一次失败的Selenium chromedriver切换

    背景 Selenium webdriver一直使用Firefox作为浏览器来跑webtest, 但是最近发现ff有时会报超时的错误,于是想到使用chromedriver来提升稳定性.本想只把.fire ...