如何测量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 相关文章推荐
围观tangram js库
Dec 28 Javascript
Js数组的操作push,pop,shift,unshift等方法详细介绍
Dec 28 Javascript
javascript学习笔记--数字格式类型
May 22 Javascript
分享一则javascript 调试技巧
Jan 02 Javascript
js判断浏览器类型及设备(移动页面开发)
Jul 30 Javascript
AngularJS实现元素显示和隐藏的几个案例
Dec 09 Javascript
浅析JavaScript回调函数应用
May 22 Javascript
完美解决jQuery的hover事件在IE中不停闪动的问题
Feb 10 Javascript
node.js连接MongoDB数据库的2种方法教程
May 17 Javascript
vuejs 单文件组件.vue 文件的使用
Jul 28 Javascript
Bootstrap 模态框(Modal)带参数传值实例
Aug 20 Javascript
教你如何用node连接redis的示例代码
Jul 12 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
iis6手工创建网站后无法运行php脚本的解决方法
2017/06/08 PHP
PHP 8新特性简介
2020/08/18 PHP
文本加密解密
2006/06/23 Javascript
JavaScript 脚本将当地时间转换成其它时区
2009/03/19 Javascript
jQuery对下拉框,单选框,多选框的操作
2014/02/21 Javascript
Jquery的基本对象转换和文档加载用法实例
2015/02/25 Javascript
javascript实现的多个层切换效果通用函数实例
2015/07/06 Javascript
js实现C#的StringBuilder效果完整实例
2015/12/22 Javascript
浅析Javascript ES6中的原生Promise
2016/08/25 Javascript
js html css实现复选框全选与反选
2016/10/09 Javascript
JS百度地图搜索悬浮窗功能
2017/01/12 Javascript
Vue父子组建的简单通信之控制开关Switch的实现
2018/06/04 Javascript
浅谈关于iview表单验证的问题
2018/09/29 Javascript
angular4应用中输入的最小值和最大值的方法
2019/05/17 Javascript
js正则匹配多个全部数据问题
2019/12/20 Javascript
[49:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第二场 3月4日
2021/03/11 DOTA
python实现封装得到virustotal扫描结果
2014/10/05 Python
简单介绍Python2.x版本中的cmp()方法的使用
2015/05/20 Python
python 计算数组中每个数字出现多少次--“Bucket”桶的思想
2017/12/19 Python
快速查找Python安装路径方法
2020/02/06 Python
Python3自定义json逐层解析器代码
2020/05/11 Python
python不同系统中打开方法
2020/06/23 Python
mac系统下安装pycharm、永久激活、中文汉化详细教程
2020/11/24 Python
解决python 执行shell命令无法获取返回值的问题
2020/12/05 Python
HTML高亮关键字的实现代码
2018/10/22 HTML / CSS
使用Html5中的cavas画一面国旗
2019/09/25 HTML / CSS
巴西男士胡须和头发护理产品商店:Beard
2017/11/13 全球购物
你们项目是如何进行变更控制的
2015/08/26 面试题
会计系个人求职信范文分享
2013/12/20 职场文书
工厂会计员职责
2014/02/06 职场文书
年度安全生产目标责任书
2014/07/23 职场文书
2014年安全工作总结范文
2014/11/13 职场文书
考研经验交流会策划书
2015/11/02 职场文书
八年级作文之感恩
2019/11/22 职场文书
Python 正则模块详情
2021/11/02 Python
SpringBoot系列之MongoDB Aggregations用法详解
2022/02/12 MongoDB