如何测量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 相关文章推荐
静态页面的值传递(三部曲)
Sep 25 Javascript
获取URL地址中的文件名和参数的javascript代码
Sep 02 Javascript
JavaScript的parseInt 取整使用
May 09 Javascript
基于Jquery制作图片文字排版预览效果附源码下载
Nov 18 Javascript
js console.log打印对像与数组用法详解
Jan 21 Javascript
jQuery+Pdo编写login登陆界面
Aug 01 Javascript
Bootstrap CSS布局之表单
Dec 17 Javascript
jQuery实现级联下拉框实战(5)
Feb 08 Javascript
详解vue移动端日期选择组件
Feb 22 Javascript
vue车牌号校验和银行校验实战
Jan 23 Javascript
vue项目中锚点定位替代方式
Nov 13 Javascript
vue-以文件流-blob-的形式-下载-导出文件操作
Aug 07 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 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
2012/12/07 PHP
jquery下利用jsonp跨域访问实现方法
2010/07/29 Javascript
JavaScript中的细节分析
2012/06/30 Javascript
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
2012/10/11 Javascript
简单的代码实现jquery定时器
2013/11/17 Javascript
javascript创建数组之联合数组的使用方法示例
2013/12/26 Javascript
javascript中Object使用详解
2015/01/26 Javascript
简要了解jQuery移动web开发的响应式布局设计
2015/12/04 Javascript
JavaScript实现输入框(密码框)出现提示语
2016/01/12 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
2017/01/11 Javascript
jQuery实现的动态文字变化输出效果示例【附演示与demo源码下载】
2017/03/24 jQuery
JS 判断某变量是否为某数组中的一个值的3种方法(总结)
2017/07/10 Javascript
angular2中使用第三方js库的实例
2018/02/26 Javascript
详解VUE调用本地json的使用方法
2019/05/15 Javascript
Vue使用自定义指令实现拖拽行为实例分析
2020/06/06 Javascript
Python实现的金山快盘的签到程序
2013/01/17 Python
Python入门学习指南分享
2018/04/11 Python
python实现图片批量压缩程序
2018/07/23 Python
Python3.5字符串常用操作实例详解
2019/05/01 Python
python 并发编程 多路复用IO模型详解
2019/08/20 Python
django 模型字段设置默认值代码
2020/07/15 Python
用Python 执行cmd命令
2020/12/18 Python
Python爬虫UA伪装爬取的实例讲解
2021/02/19 Python
matplotlib绘制正余弦曲线图的实现
2021/02/22 Python
购买200个世界上最好的内衣品牌:Bare Necessities
2017/02/11 全球购物
Abbacino官网:包、钱包和女士配饰
2019/04/15 全球购物
怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?
2013/03/19 面试题
医学生自我鉴定范文
2013/11/08 职场文书
房屋买卖协议书
2014/04/10 职场文书
乡镇创先争优活动总结
2014/08/28 职场文书
2019年最新借条范本!
2019/07/08 职场文书
经典法律座右铭(50句)
2019/08/15 职场文书
MySQL配置主从服务器(一主多从)
2021/08/07 MySQL
详解Java七大阻塞队列之SynchronousQueue
2021/09/04 Java/Android
spring cloud 配置中心客户端启动遇到的问题
2021/09/25 Java/Android
教你如何让spark sql写mysql的时候支持update操作
2022/02/15 MySQL