本文首发于个人我的博客: teobler.comhtml
有的时候咱们可能会想测试一下用户的某一个操做要消耗多少时间,而一般通常人会这么作:node
const start = new Date().getTime();
// do your work const end = new Date().getTime(); console.log(end - start); 复制代码
使用 performance API,咱们能够这么作:web
performance.mark("start");
// do your work performance.mark("end"); performance.measure("your work name", "start", "end"); console.log(performance.getEntriesByType("measure")); 复制代码
以后在控制台里咱们能够看到这样的 console 信息sql
同时在 chrome 的 performance tab 里面,若是你进行相应的记录,会产生一个在 User Timing 标题下的可视化的图表chrome
首先老规矩咱们来介绍下面板:后端
其中最后一栏中有不一样的颜色,它们表明了不一样的意义:浏览器
接下来咱们来看几个例子,看看这些颜色到底有什么用:缓存
这张图很明显是下载的文件太大了服务器
这张图后端可能出问题了网络
这张图的总耗时并不长,可是能够看到各类时间都挺长,从DNS查找的时长来看多是第一次访问一个新的域名,致使全部的链接时间都比较长
这张图代表你一次性下载的资源过多,致使队列等待时间过长
在network面板最上方有一个消摄像机的图标,点击后刷新页面devtool会记录下加载网页过程当中的每一次重绘的时间点并截图,你能够从中看到整个网页加载的过程,你可使用这个功能来测试你的网站若是在网络环境比较差的状况下如何加载的,用户体验是否友好等等。
在截图完成后你能够双击某一个图片放大,而后使用左右箭头来预览不一样时刻你的网页加载状况。
同时你能够用这个功能来提高一些微小的性能问题,好比加载太多的图片时如何加载比较好等等。好比你在加载一个比较大的资源的时候若是阻塞了其余全部资源的加载的话是否能够考虑将这个资源延迟加载会比较好,否则用户将没有办法看到网页上的数据。
auditing能够判断你网页的一些问题,好比加载时长,SEO,用户体验等等。
在auditing面板中google集成了Lighthouse,这是google开发的专门用于分析网页问题(好比SEO,性能,最佳实践等等)的一个工具,它的使用很简单,打开audit面板,进入你想测试的网页,勾上想要测试的内容,点击generate report按钮就能够了,以后一段时间的分析,Chrome将为你的网站进行一系列的分析和评分,在有问题的地方还可以给出一些建议,帮助你解决网站的各类问题。
在报告的最上面能够充看到报告的一个总体状况,点击某一个分数后就可以跳转到相应的板块,咱们以performance为例
在图中咱们能够看到Chrome认为有问题的项目就会被标红,点击右边的按钮能够获得更多的信息,而后点击learn more能够看到一些google的建议,总的来讲这个面板对于提高咱们的网站体验有着不错的效果。你能够经过这个工具更加熟悉你的网站,能够看到那些地方是还能够改进的,哪些地方是作的不错的。
在这里能够介绍一个差很少的网站叫作sonarwhal,它的功能也跟devtool里面的audit相似
在启动node server的时候若是在命令行中加上--inspect
的话,就能够在Chrome中的console中看到一个Node的logo,点击后能够打开node专用的devtool,在这里你能够在sources中进行一切操做,同时这里有一个profile页面,选中相应的server并点击start按钮后,刷新相应的页面,在刷新完成后再回来点击stop,这时Chrome会展现在刚刚的一次刷新中你的server作了什么:
图中的横轴是时间,纵轴是此次刷新页面server端的调用栈。那么这玩意儿是干吗用的呢?profile是为了可以让开发者直观地看到本身的Node server端的一些调用状况,在出问题时能够立刻看到一个调用消耗的时间很长,那么就能够定位到代码中,看是否是相关的调用发生了不可预知的错误,及时修正。在这个profile中点击相应的function将直接跳转到相应的source code。
若是你喜欢个人文章,请帮我点个赞,还能够关注个人公众号
本文使用 mdnice 排版