如何测量vue应用运行时的性能


Posted in Javascript onJune 21, 2019

在上一篇文章中,我们讨论了如何提高大型数据的性能。但是我们还没有测量它提高了多少。

我们可以使用Chrome DevTools 的性能选项来实现这一点。但是为了获取准确数据,我们必须在Vue上激活性能模式。

我们可以在main.js或者插件中设置全局变量,代码如下:

Vue.config.performance = true;

如果你设置了正确的 NODE_ENV 环境变量,那么可以使用非生产环境做判断。

const isDev = process.env.NODE_ENV !== "production";
Vue.config.performance = isDev;

这将在Vue内部激活标记组件性能的User Timing API

上一篇文章内容,我已经在codesandbox上创建了代码。打开 Chrome DevTools 里的 performance 选项并且点击重新加载按钮。

如何测量vue应用运行时的性能

这将记录页面加载性能。同时,感谢你在main.js中的Vue.config.performance设置,这个设置会使你在统计资料能够看到User Timing部分。

如何测量vue应用运行时的性能

在哪里,你会发现3个指标:

  • Init:创建组件实例需要的时间
  • Render:创建VDom结构需要的时间
  • Patch:把VDom应用到实际Dom的时间

回到上一篇文章好奇(性能提高了多少)的地方,结果是:正常的组件需要417毫秒初始化:

如何测量vue应用运行时的性能

而使用Object.freeze阻止了默认反应则只需要3.9毫秒:

如何测量vue应用运行时的性能

当然,每次运行的结果都会有小的变化,但是,仍然有非常巨大的性能差别。由于在创建组件的时候会有默认反应的问题,你可以通过Init(初始化指标)看到阻止了默认反应和没有阻止的差异。

就是这样!

我的理解

vue项目,我们可以通过在全局main.js设置Vue.config.performance为true来开启性能检测,可以通过环境变量来区分是否需要开启,然后就可以通过Chrome DevTools里的 performance 选项去看统计的性能数据。

结尾

水平有限,难免有错漏之处,望各位大大轻喷的同时能够指出,跪谢!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript document.execCommand() 常用解析
Dec 14 Javascript
jqeury eval将字符串转换json的方法
Jan 20 Javascript
JS 模态对话框和非模态对话框操作技巧汇总
Apr 15 Javascript
js实现跨域的方法实例详解
Jun 24 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
May 05 Javascript
JavaScript_object基础入门(必看篇)
Jun 13 Javascript
DOM 事件的深入浅出(一)
Dec 05 Javascript
AngularJS Select(选择框)使用详解
Jan 18 Javascript
原生js实现弹出层效果
Jan 20 Javascript
JavaScript中Hoisting详解 (变量提升与函数声明提升)
Aug 18 Javascript
vue实现tab切换外加样式切换方法
Mar 16 Javascript
JS异步宏队列微队列原理详解
Sep 09 Javascript
Vue组件之高德地图地址选择功能的实例代码
Jun 21 #Javascript
如何提升vue.js中大型数据的性能
Jun 21 #Javascript
配置node服务器并且链接微信公众号接口配置步骤详解
Jun 21 #Javascript
微信小程序实现点击效果
Jun 21 #Javascript
JS利用prototype给类添加方法操作详解
Jun 21 #Javascript
三分钟教你用Node做一个微信哄女友(基友)神器(面向小白)
Jun 21 #Javascript
微信小程序实现弹出菜单动画
Jun 21 #Javascript
You might like
搜索和替换文件或目录的一个好类--很实用
2006/10/09 PHP
浅析php fwrite写入txt文件的时候用 \r\n不能换行的问题
2013/08/06 PHP
CodeIgniter输出中文乱码的两种解决办法
2014/06/12 PHP
PHP中header函数的用法及其注意事项详解
2016/06/13 PHP
php实现留言板功能(代码详解)
2017/03/28 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
Javascript 不能释放内存.
2006/09/07 Javascript
dojo 之基础篇
2007/03/24 Javascript
用js实现随机返回数组的一个元素
2007/08/13 Javascript
超棒的javascript页面顶部卷动广告效果
2007/12/01 Javascript
Jquery仿淘宝京东多条件筛选可自行结合ajax加载示例
2013/08/28 Javascript
js带按钮的提示框可供选择示例代码
2013/09/17 Javascript
jQuery实现文字自动横移
2017/01/08 Javascript
ES6正则的扩展实例详解
2017/04/25 Javascript
详解webpack运行Babel教程
2018/06/13 Javascript
vue中锚点的三种方法
2018/07/06 Javascript
解决angular双向绑定无效果,ng-model不能正常显示的问题
2018/10/02 Javascript
小程序实现选择题选择效果
2018/11/04 Javascript
nodejs基础之多进程实例详解
2018/12/27 NodeJs
从vue源码看props的用法
2019/01/09 Javascript
利用Python实现Windows下的鼠标键盘模拟的实例代码
2017/07/13 Python
python求质数的3种方法
2018/09/28 Python
python Selenium实现付费音乐批量下载的实现方法
2019/01/24 Python
微信小程序python用户认证的实现
2019/07/29 Python
Python3 把一个列表按指定数目分成多个列表的方式
2019/12/25 Python
python基于opencv检测程序运行效率
2019/12/28 Python
详解python的xlwings库读写excel操作总结
2021/02/26 Python
幼儿园安全检查制度
2014/01/30 职场文书
安全标准化汇报材料
2014/02/03 职场文书
菜篮子工程实施方案
2014/03/08 职场文书
党员教师四风问题对照检查材料
2014/09/26 职场文书
领导干部“四风”查摆问题个人整改措施
2014/10/28 职场文书
整脏治乱工作简报
2015/07/21 职场文书
简短清晨问候语
2015/11/10 职场文书
导游词之太湖
2019/10/08 职场文书
Android 中的类文件和类加载器详情
2022/06/05 Java/Android