早期测速的时候是这样的,呵呵呵,一开始还挺爽的

function testFunctionTime(fn) {
  var start = new Date().getTime();
  if (fn) fn();
  var end = new Date().getTime();
  console.log(end-start);
}

但当遇上 ajax 和 img.onload 的时候那就很尴尬了...

于是我找到了 console.time(label) 和 console.timeEnd(label),非常 nice !

在开始的地方写上 console.time("测试 fn 速度: ") ,在结束的地方写上 console.timeEnd("测试 fn 速度: ")

label 得相同,然后你就懂了呀,来,互相伤害

此外,我也对 console 产生了一点兴趣就去测试了更多它的方法,列几个个人最近用的较多的:

console.count(label)  输出运行次数

console.table(object|array)  输出表格形态的数据(在动态绘制的检查时用的较多)

console.group(label) 和 console.groupEnd(label) 将 console 结果进行分组(分类及减少输出版面,但也加大了我们的脑回路呀)(group = groupCollapsed 是一样的)

console.trace() 检测方法的调用来源,超级赞

console.profile(label) 和 console.profileEnd(label) 是 time 的升级版,不但测速,直接测性能了,需要到 profile 面板里面才能看到结果

console.assert(boolean, string) 提示报错可以少个判断

其实 console.error(), console.info(), console.warn() 实在用得少,用好了应该还是很赞的...吧

至于其他方法个人感觉就很鸡肋了,如果你也感兴趣,也可以去搜搜看。

此外,有个装逼的好方法,console.log 可以带样式哟,赶紧试试吧

console.log("%cHello","color:red");

测试 js 方法运行时间的更多相关文章

  1. 测试JS方法运行时间

    console.time(label) 和 console.timeEnd(label), 在开始的地方写上 console.time("测试 fn 速度: ") ,在结束的地方写 ...

  2. spring3.0框架检测方法运行时间测试(转)

    主要利用了Spring AOP 技术,对想要统计的方法进行横切处理,方法执行前开始计时,方法执行后停止计时,得到计时方法就是该方法本次消耗时间. 步骤: 首先编写自己的Interceptor类来实现M ...

  3. angularJS入门小Demo【简单测试js代码的方法】

    1.首先建立一个文件夹 demo, 2.在其中建立一个文本文档,改名为 demo-1.html, 3.把html中要引入的 js 文件拷贝到 demo目录下, 4.然后用 Notepadd++ 编辑刚 ...

  4. java监测方法运行时间/效率方法

    前言: 这周在写一个小项目,虽然小但是是纯调外部接口的,调完了接口还不停的循环接口返回的数据(已转换JSONArray),然后再判断值,再做不同处理,关键是数据量还比较大,这刚做完还没开始上线,测试也 ...

  5. js方法调用

    <!DOCTYPE html> <html> <head> <title>测试</title> </head> <body ...

  6. 《笔记篇》非JS方法跳转到一个新页面,主要防止客户端禁止浏览器JS以后的跳转异常

    用非JS方法打开一个新页面,主要防止客户端禁止浏览器JS以后的跳转失效 <meta http-equiv="refresh" content="0; url=htt ...

  7. js实用方法记录-指不定哪天就会用到的js方法

    js实用方法记录-指不定哪天就会用到的js方法 常用或者不常用都有 判断是否在微信浏览器中 测试代码:isWeiXin()==false /** * 是否在微信中 */ function isWeix ...

  8. js中同一个onclick绑定了两个js方法出现的问题

    问题: js中如果同一个onclick绑定了两个js方法问题,即 <li onclick="f1(),f2()"></li> 两个方法f1,f2中都分别有一 ...

  9. Go 测试单个方法/性能测试

    Go 测试单个方法 gotest.go package mytest import ( "errors" ) func Division(a, b float64) (float6 ...

随机推荐

  1. python 开发技巧(2)-- Django的安装与使用

    一.安装Django pip3 install django 或者直接使用PyCharm安装 参考 二.添加环境变量 将 "(python安装路径)\Scripts" 添加到环境变 ...

  2. Redis 哈希槽

    Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余 ...

  3. bat脚本批处理打war打包

    @echo =========================================== @echo 描述:打包脚本 @echo 作者:霍建国 @echo 日期:2018-03-13 @ec ...

  4. ThinkPHP与EasyUI整合之二(datagrid):删除多条记录

    学习EasyUI已有一段时间了,现在开始逐步把平时学习的细节和难点记录下来. 1. datagrid选中多条记录的语句是: var rows = $('#dg').datagrid('getSelec ...

  5. matlab小数分数转换

    >> format short      %%%% MATLAB默认格式,小数显示 >> format rat    %%%%% 转成分数表示

  6. Android Studio下通过Gradle配置实现资源文件的模块化

    当开发一个app模块个数很多的时候,资源文件就会特别多,布局也会多起来,这时所有的layout都放在同一个目录下,就会显得臃肿,而且不好找相应的布局. 最近看到相关资料,发现在Android Stud ...

  7. Java 基础巩固,根深而叶茂

    #J2SE ##基础 八种基本数据类型的大小,以及他们的封装类. 八种基本数据类型,int ,double ,long ,float, short,byte,character,boolean 对应的 ...

  8. timus1965(不错的贪心)

    题意是:给你一个1-n的排列,要你把这个排列分成两个序列,且这个两个序列都满足单调性. 题解: 1.首先假设找出的两个序列都是单调递增的(都是单调递减的同理) 那么很容易可以想到,将新加入的数放入到某 ...

  9. mysql导出csv文件

    SELECT * FROM (select 'id','url','大分类','分类','贴吧名称','关注用户数','帖子数量','简介','帖子名称','楼主ID','发表时间','采集时间',' ...

  10. 为什么要提倡"Design Pattern"呢? 开闭原则 系统设计时,注意对扩展开放,对修改闭合。

    [亲身经历] 无规矩不成方圆 设计模式 - 搜狗百科 https://baike.sogou.com/v123729.htm?fromTitle=设计模式 为什么要提倡"Design Pat ...