如何测量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 相关文章推荐
自写的一个jQuery圆角插件
Oct 26 Javascript
JS实现的N多简单无缝滚动代码(包含图文效果)
Nov 06 Javascript
Jquery为DIV添加click事件的简单实例
Jun 02 Javascript
JS结合bootstrap实现基本的增删改查功能
Jul 22 Javascript
响应式表格之固定表头的简单实现
Aug 26 Javascript
AngularJS 单元测试(二)详解
Sep 21 Javascript
使用vue.js实现checkbox的全选和多个的删除功能
Feb 17 Javascript
使用nvm管理不同版本的node与npm的方法
Oct 31 Javascript
mui上拉加载更多下拉刷新数据的封装过程
Nov 03 Javascript
js断点调试经验分享
Dec 08 Javascript
Vue动态修改网页标题的方法及遇到问题
Jun 09 Javascript
JS简易计算器实例讲解
Jun 30 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
我用php+mysql写的留言本
2006/10/09 PHP
php在页面中调用fckeditor编辑器的方法
2011/06/10 PHP
php的webservice的wsdl的XML无法显示问题的解决方法
2014/03/11 PHP
Javascript解决常见浏览器兼容问题的12种方法
2010/01/04 Javascript
jQuery数据显示插件整合实现代码
2011/10/24 Javascript
window.onload和$(function(){})的区别介绍
2013/10/30 Javascript
js获取客户端网卡的IP地址、MAC地址
2014/03/26 Javascript
JavaScript对象之深度克隆介绍
2014/12/08 Javascript
jquery实现搜索框常见效果的方法
2015/01/22 Javascript
jQuery Form 表单提交插件之formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的应用
2016/01/23 Javascript
JavaScript记录光标在编辑器中位置的实现方法
2016/04/22 Javascript
Sea.JS知识总结
2016/05/05 Javascript
vue之nextTick全面解析
2017/05/17 Javascript
js学习总结之DOM2兼容处理重复问题的解决方法
2017/07/27 Javascript
JS非空验证及邮箱验证的实例
2017/08/11 Javascript
javascript连接mysql与php通过odbc连接任意数据库的实例
2017/12/27 Javascript
jQuery实现ajax的嵌套请求案例分析
2019/02/16 jQuery
openlayers4.6.5实现距离量测和面积量测
2020/09/25 Javascript
[02:53]DOTA2英雄昆卡基础教程
2013/11/25 DOTA
[01:01:13]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第三场
2018/04/06 DOTA
[19:26]TNC vs EG (BO3)
2018/06/07 DOTA
在Python的Django框架中创建和使用模版
2015/07/15 Python
Python与Java间Socket通信实例代码
2017/03/06 Python
Python排序搜索基本算法之冒泡排序实例分析
2017/12/09 Python
Python实现Pig Latin小游戏实例代码
2018/02/02 Python
python实现对输入的密文加密
2019/03/20 Python
python ubplot使用方法解析
2020/01/10 Python
Clarks英国官方网站:全球领军鞋履品牌
2016/11/26 全球购物
限量版运动鞋和街头服饰:TheDrop
2020/09/06 全球购物
晚会邀请函范文
2014/01/24 职场文书
银行职员自我鉴定
2014/04/20 职场文书
教师四风自我剖析材料
2014/09/30 职场文书
教师作风整改措施思想汇报
2014/10/12 职场文书
实习介绍信范文
2015/05/05 职场文书
跑出一片天观后感
2015/06/08 职场文书
超级详细实用的pycharm常用快捷键
2021/05/12 Python