如何测量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 相关文章推荐
js option删除代码集合
Nov 12 Javascript
两个listbox实现选项的添加删除和搜索
Mar 01 Javascript
js数组的基本用法及数组根据下标(数值或字符)移除元素
Oct 20 Javascript
AngularJS 自定义过滤器详解及实例代码
Sep 14 Javascript
javascript判断firebug是否开启的方法
Nov 23 Javascript
详解照片瀑布流效果(js,jquery分别实现与知识点总结)
Jan 01 Javascript
vue中for循环更改数据的实例代码(数据变化但页面数据未变)
Sep 15 Javascript
深入理解JavaScript 中的匿名函数((function() {})();)与变量的作用域
Aug 28 Javascript
基于Proxy的小程序状态管理实现
Jun 14 Javascript
深入解读Node.js中的koa源码
Jun 17 Javascript
javascript实现支付宝滑块验证码效果
Jul 24 Javascript
vue中使用vue-pdf的方法详解
Sep 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
php 全局变量范围分析
2009/08/07 PHP
PHP中Socket连接及读写数据超时问题分析
2016/07/19 PHP
关于php中的json_encode()和json_decode()函数的一些说明
2016/11/20 PHP
PHP memcache在微信公众平台的应用方法示例
2017/09/13 PHP
PHP autoload使用方法及步骤详解
2020/09/05 PHP
JavaScript 模仿vbs中的 DateAdd() 函数的代码
2007/08/13 Javascript
不要在cookie中使用特殊字符的原因分析
2010/07/13 Javascript
基于jQuery的输入框无值自动显示指定数据的实现代码
2011/01/24 Javascript
JS实现一个列表中包含上移下移删除等功能
2014/09/24 Javascript
Javascript中获取对象的原型对象的方法小结
2015/02/25 Javascript
js+HTML5实现canvas多种颜色渐变效果的方法
2015/06/05 Javascript
js实现的简洁网页滑动tab菜单效果代码
2015/08/24 Javascript
AngularJs 动态加载模块和依赖
2016/09/15 Javascript
浅谈Node.js:fs文件系统模块
2016/12/08 Javascript
微信小程序商城项目之商品属性分类(4)
2017/04/17 Javascript
详解vue服务端渲染(SSR)初探
2017/06/19 Javascript
Cpage.js给组件绑定事件的实现代码
2017/08/31 Javascript
详解搭建es6+devServer简单开发环境
2018/09/25 Javascript
vue vant Area组件使用详解
2019/12/09 Javascript
详解python单例模式与metaclass
2016/01/15 Python
Python ldap实现登录实例代码
2016/09/30 Python
对python 合并 累加两个dict的实例详解
2019/01/21 Python
利用pyinstaller打包exe文件的基本教程
2019/05/02 Python
python解压TAR文件至指定文件夹的实例
2019/06/10 Python
python urllib爬虫模块使用解析
2019/09/05 Python
PyTorch安装与基本使用详解
2020/08/31 Python
如何使用Pytorch搭建模型
2020/10/26 Python
css 元素选择器的简单实例
2016/05/23 HTML / CSS
玛蒂尔达简服装:Matilda Jane Clothing
2019/02/13 全球购物
美国Jeep配件购物网站:Morris 4×4 Center
2019/05/01 全球购物
北京RT科技有限公司.net工程师面试题
2013/02/15 面试题
领导干部学习“三严三实”思想汇报
2014/09/15 职场文书
领导班子遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
小学体育队列队形教学反思
2016/02/16 职场文书
在JavaScript中如何使用宏详解
2021/05/06 Javascript
HTML5 语义化标签(移动端必备)
2021/08/23 HTML / CSS