如何测量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 相关文章推荐
仅img元素创建后不添加到文档中会执行onload事件的解决方法
Jul 31 Javascript
html a标签-超链接中confirm方法使用介绍
Jan 04 Javascript
js中的前绑定和后绑定详解
Aug 01 Javascript
往光标所在位置插入值的js代码
Sep 22 Javascript
JavaScript实现更改网页背景与字体颜色的方法
Feb 02 Javascript
基于jQuery实现的双11天猫拆红包抽奖效果
Dec 01 Javascript
Spring MVC中Ajax实现二级联动的简单实例
Jul 06 Javascript
微信小程序 简单DEMO布局,逻辑,样式的练习
Nov 30 Javascript
node.js中axios使用心得总结
Nov 29 Javascript
vue.js 双层嵌套for遍历的方法详解, 类似php foreach()
Sep 07 Javascript
taro开发微信小程序的实践
May 21 Javascript
javascript实现京东快递单号的查询效果
Nov 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 excel类 phpExcel使用方法介绍
2010/08/21 PHP
Eclipse的PHP插件PHPEclipse安装和使用
2014/07/20 PHP
php静态成员方法和静态的成员属性的使用方法
2017/10/26 PHP
php中curl和soap方式请求服务超时问题的解决
2018/06/11 PHP
PHP实现简单注册登录系统
2020/12/28 PHP
jquery 读取页面load get post ajax 四种方式代码写法
2011/04/02 Javascript
点击标签切换和自动切换DIV选项卡
2014/08/10 Javascript
JavaScript弹出窗口方法汇总
2014/08/12 Javascript
jQuery绑定事件on()与弹窗的简要概述
2016/04/27 Javascript
Jquery获取第一个子元素简单实例
2016/06/02 Javascript
bootstrap警告框使用方法解析
2017/01/13 Javascript
react-native-tab-navigator组件的基本使用示例代码
2017/09/07 Javascript
基于js的变量提升和函数提升(详解)
2017/09/17 Javascript
js删除数组中的元素delete和splice的区别详解
2018/02/03 Javascript
jQuery基于闭包实现的显示与隐藏div功能示例
2018/06/09 jQuery
vue.js 实现输入框动态添加功能
2018/06/25 Javascript
vue中created和mounted的区别浅析
2019/08/13 Javascript
初学vue出现空格警告的原因及其解决方案
2019/10/31 Javascript
JS函数参数的传递与同名参数实例分析
2020/03/16 Javascript
JS数组索引检测中的数据类型问题详解
2021/01/11 Javascript
[01:02:20]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
打开电脑上的QQ的python代码
2013/02/10 Python
详解Python中最难理解的点-装饰器
2017/04/03 Python
python求最大连续子数组的和
2018/07/07 Python
python 地图经纬度转换、纠偏的实例代码
2018/08/06 Python
selenium使用chrome浏览器测试(附chromedriver与chrome的对应关系表)
2018/11/29 Python
详解Python的数据库操作(pymysql)
2019/04/04 Python
Python利用pandas处理Excel数据的应用详解
2019/06/18 Python
Python使用psutil获取进程信息的例子
2019/12/17 Python
Django多个app urls配置代码实例
2020/11/26 Python
美国全球旅游运营商:Pacific Holidays
2018/06/18 全球购物
Etam艾格英国官网:法国著名女装品牌
2019/04/15 全球购物
纪念九一八事变演讲稿:牢记历史,捍卫主权
2014/09/14 职场文书
幼儿园园务工作总结2015
2015/05/18 职场文书
cf战队宣传语
2015/07/13 职场文书
NGINX 权限控制文件预览和下载的实现原理
2022/01/18 Servers