如何测量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 ajax return没有返回值的解决方法
Oct 20 Javascript
jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
Mar 25 Javascript
javascript的alert box在java中如何显示多行
May 18 Javascript
Node.js安装教程和NPM包管理器使用详解
Aug 16 Javascript
百度地图api如何使用
Aug 03 Javascript
JS实现横向拉伸动感伸缩菜单效果代码
Sep 04 Javascript
省市二级联动小案例讲解
Jul 24 Javascript
Node.js配合node-http-proxy解决本地开发ajax跨域问题
Aug 31 Javascript
jquery自定义表单验证插件
Oct 12 Javascript
JavaScript之浏览器对象_动力节点Java学院整理
Jul 03 Javascript
ionic2懒加载配置详解
Sep 01 Javascript
Vue+Express实现登录状态权限验证的示例代码
May 05 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
评分9.0以上的动画电影,剧情除了经典还很燃
2020/03/04 日漫
全国FM电台频率大全 - 25 云南省
2020/03/11 无线电
php多个字符串替换成同一个的解决方法
2013/06/18 PHP
PHP中strpos、strstr和stripos、stristr函数分析
2016/06/11 PHP
利用php实现一周之内自动登录存储机制(cookie、session、localStorage)
2016/10/31 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例
2019/03/01 PHP
php经典趣味算法实例代码
2020/01/21 PHP
可以支持多中格式的JS键盘
2007/05/02 Javascript
jQuery 图片切换插件(代码比较少)
2012/05/07 Javascript
如何编写高质量JS代码
2014/12/28 Javascript
JS实现可自定义大小,可双击关闭的弹出层效果
2015/10/16 Javascript
vue2+el-menu实现路由跳转及当前项的设置方法实例
2017/11/07 Javascript
webpack搭建vue 项目的步骤
2017/12/27 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
浅谈Webpack核心模块tapable解析
2018/09/11 Javascript
ES6基础之解构赋值(destructuring assignment)
2019/02/21 Javascript
MockJs结合json-server模拟后台数据
2020/08/26 Javascript
vue element-ui el-date-picker限制选择时间为当天之前的代码
2019/11/07 Javascript
详解elementUI中input框无法输入的问题
2020/04/27 Javascript
基于vue和bootstrap实现简单留言板功能
2020/05/30 Javascript
Python创建模块及模块导入的方法
2015/05/27 Python
使用django-crontab实现定时任务的示例
2018/02/26 Python
python 构造三维全零数组的方法
2018/11/12 Python
tensorboard实现同时显示训练曲线和测试曲线
2020/01/21 Python
印尼在线精品店:Berrybenka.com
2016/10/22 全球购物
关于爱情的广播稿
2014/01/16 职场文书
寄语是什么意思
2014/04/10 职场文书
物联网工程专业推荐信
2014/09/08 职场文书
志愿者爱心公益活动策划方案
2014/09/15 职场文书
婚育证明样本
2015/06/16 职场文书
个人收入证明格式
2015/06/24 职场文书
酒店宣传语大全
2015/07/13 职场文书
班主任班级管理心得体会
2016/01/07 职场文书
Kubernetes部署实例并配置Deployment、网络映射、副本集
2022/04/01 Servers
Spring 使用注解开发
2022/05/20 Java/Android