如何测量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 Select(单选) 模拟插件 V1.3.62 改进版
Jul 17 Javascript
IE关闭时判断及AJAX注销案例学习
Feb 18 Javascript
js 赋值包含单引号双引号问题的解决方法
Feb 26 Javascript
jquery用offset()方法获得元素的xy坐标
Sep 06 Javascript
jquery如何获取元素的滚动条高度等实现代码
Oct 19 Javascript
JS简单生成两个数字之间随机数的方法
Aug 03 Javascript
基于vue打包后字体和图片资源失效问题的解决方法
Mar 06 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
Mar 20 Javascript
npm全局模块卸载及默认安装目录修改方法
May 15 Javascript
vue如何引入sass全局变量
Jun 28 Javascript
解决vue-cli@3.xx安装不成功的问题及搭建ts-vue项目
Feb 09 Javascript
微信小程序实现限制用户转发功能的实例代码
Feb 22 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/11/16 PHP
自动生成文章摘要的代码[PHP 版本]
2007/03/20 PHP
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
2010/06/11 PHP
php使用sql数据库 获取字段问题介绍
2013/08/12 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
2016/08/19 PHP
关于JavaScript中原型继承中的一点思考
2012/07/25 Javascript
面向对象设计模式的核心法则
2013/11/10 Javascript
jquery实现横向图片轮播特效代码分享
2015/11/19 Javascript
Jquery插件easyUi实现表单验证示例
2015/12/15 Javascript
AngularJS利用Controller完成URL跳转
2016/08/09 Javascript
BootStrap实现手机端轮播图左右滑动事件
2016/10/13 Javascript
基于jQuery实现的幻灯图片切换
2016/12/02 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
利用JavaScript实现栈的数据结构示例代码
2017/08/02 Javascript
JS自定义函数实现时间戳转换成date的方法示例
2017/08/27 Javascript
详解react-native-fs插件的使用以及遇到的坑
2017/09/12 Javascript
浅析vue.js数组的变异方法
2018/06/30 Javascript
element-ui中的select下拉列表设置默认值方法
2018/08/24 Javascript
微信小程序实现图片滚动效果示例
2018/12/05 Javascript
JavaScript作用域链实例详解
2019/01/21 Javascript
移动端(微信等使用vConsole调试console的方法
2019/03/05 Javascript
在Python中使用Mako模版库的简单教程
2015/04/08 Python
Python生成器(Generator)详解
2015/04/13 Python
Python字典操作详细介绍及字典内建方法分享
2018/01/04 Python
python3.7.0的安装步骤
2018/08/27 Python
详解python3 + Scrapy爬虫学习之创建项目
2019/04/12 Python
Django如何简单快速实现PUT、DELETE方法
2019/07/24 Python
python如何实现不用装饰器实现登陆器小程序
2019/12/14 Python
Pytorch: 自定义网络层实例
2020/01/07 Python
django 读取图片到页面实例
2020/03/27 Python
python批量合成bilibili的m4s缓存文件为MP4格式 ver2.5
2020/12/01 Python
Skechers越南官方网站:来自美国的运动休闲品牌
2021/02/22 全球购物
小学三年级数学教学反思
2014/01/31 职场文书
合作协议书范本
2014/10/25 职场文书
领导干部失职检讨书
2015/05/05 职场文书
MySQL数据管理操作示例讲解
2022/12/24 MySQL