如何测量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 dom 基本操作小结
Apr 11 Javascript
javascript 图片裁剪技巧解读
Nov 15 Javascript
用示例说明filter()与find()的用法以及children()与find()的区别分析
Apr 26 Javascript
jquery ajax方式直接提交整个表单核心代码
Aug 15 Javascript
javascript中不易分清的slice,splice和split三个函数
Mar 29 Javascript
JAVA Web实时消息后台服务器推送技术---GoEasy
Nov 04 Javascript
微信小程序 图片绝对定位(背景图片)
Apr 05 Javascript
基于javascript 显式转换与隐式转换(详解)
Dec 15 Javascript
JS封装的模仿qq右下角消息弹窗功能示例
Aug 22 Javascript
vue中Element-ui 输入银行账号每四位加一个空格的实现代码
Sep 14 Javascript
对Layer UI 模块化的用法详解
Sep 26 Javascript
Nuxt.js的路由跳转操作(页面跳转nuxt-link)
Nov 06 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
博士208HAF收音机实习报告
2021/03/02 无线电
php Ajax乱码
2008/04/09 PHP
常用的php对象类型判断
2008/08/27 PHP
php入门学习知识点二 PHP简单的分页过程与原理
2011/07/14 PHP
Symfony2实现从数据库获取数据的方法小结
2016/03/18 PHP
PHP strripos函数用法总结
2019/02/11 PHP
JS实现将人民币金额转换为大写的示例代码
2014/02/13 Javascript
JavaScript限定图片显示大小的方法
2015/03/11 Javascript
AngularJS中$http服务常用的应用及参数
2016/08/22 Javascript
浅谈js中StringBuffer类的实现方法及使用
2016/09/02 Javascript
jQuery替换节点用法示例(使用replaceWith方法)
2016/09/08 Javascript
JS中this上下文对象使用方式
2016/10/09 Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
2016/12/01 Javascript
vue2.0 element-ui中el-select选择器无法显示选中的内容(解决方法)
2018/08/24 Javascript
Node.js折腾记一:读指定文件夹,输出该文件夹的文件树详解
2019/04/20 Javascript
vue移动端模态框(可传参)的实现
2019/11/20 Javascript
vue router-link 默认a标签去除下划线的实现
2020/11/06 Javascript
利用Pandas 创建空的DataFrame方法
2018/04/08 Python
对tf.reduce_sum tensorflow维度上的操作详解
2018/07/26 Python
Python学习笔记之自定义函数用法详解
2019/06/08 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
python环境下安装opencv库的方法
2020/03/05 Python
Django restful framework生成API文档过程详解
2020/11/12 Python
python入门教程之基本算术运算符
2020/11/13 Python
python 实现客户端与服务端的通信
2020/12/23 Python
HTML5通用接口详解
2016/06/12 HTML / CSS
本科生学习总结的自我评价
2013/10/02 职场文书
电脑教师的教学自我评价
2013/11/26 职场文书
开会迟到检讨书
2014/01/08 职场文书
大型活动策划方案
2014/01/12 职场文书
代理商会议邀请函
2014/01/27 职场文书
社区志愿者活动方案
2014/08/18 职场文书
2015年清明节演讲稿范文
2015/03/17 职场文书
2015年骨干教师工作总结
2015/05/26 职场文书
初中团委工作总结
2015/08/13 职场文书
Python Django模型详解
2021/10/05 Python