作家
登录

测试JavaScript函数的性能

作者: 来源: 2017-08-10 16:52:45 阅读 我要评论

Took 0.0281 milliseconds to generate: 77005292 
  •  
  • Took 0.0162 milliseconds to generate: 77005292 
  •  
  • Took 0.0245 milliseconds to generate: 77005292 
  •  
  • Took 0.0677 milliseconds to generate: 77005292 
  •  
  • Took 0.0289 milliseconds to generate: 77005292 
  •  
  • Took 0.0240 milliseconds to generate: 77005292 
  •  
  • Took 0.0311 milliseconds to generate: 77005292 
  • 请留意第一次时光和其它九次的时光完全不一样。这很可能是因为浏览器中的JavaScript引擎应用了优化办法,须要一些热身时光。我们根本膳绫腔有办法避免这种情况,然则会有一些好的解救办法来阻拦我们得出一些缺点的结论。

    我们已司懂得衡量一些函数很多次并取平均值总会是一个好主意。并且,膳绫擎的示例告诉我们应用中位数要比平均值更好。

    让我们再试一次,此次我们应用中位数函数:

    在上一节中,我们进修到的一个很好的实践是反复履行一些操作,幻想情况下应用不合的输入。然而,我们要记住应用不合的输入带来的问题,即某些输入的履行时光可能会花费所有其它输入的履行时光都长。如许让我们退一步来应用雷同的输入。假设我们发送同样的输入十次,每次都打印花费了多长时光。我们会获得像如许的输出:

    1. var numbers = []; 
    2.  
    3. for (var i=0; i < 10; i++) { 
    4.  
    5.  var t0 = performance.now(); 
    6.  
    7.  makeHash('Peter'); 
    8.  
    9.  var t1 = performance.now(); 
    10.  
    11.  numbers.push(t1 - t0); 
    12.  
    13.  
    14.   
    15.  
    16. function median(sequence) { 
    17.  
    18.  sequence.sort();  // note that direction doesn't matter 
    19.  
    20.  return sequence[Math.ceil(sequence.length / 2)]; 
    21.  
    22.  
    23.   
    24.  
    25. console.log('Median time', median(numbers).toFixed(4), 'milliseconds'); 

    缺点 #4 – 以可猜测的方法比较函数

    在实际中,衡量函数履行时光的一个很好的用处是来懂得在几个函数中,哪个更快。假设我们有两个函数,它们的输入参数类型一致,输出结不雅雷同,然则它们的内部实现机制不一样。

    1. function isIn(haystack, needle) { 
    2.  
    3.  var found = false
    4.  
    5.  haystack.forEach(function(element) { 
    6.  
    7.    if (element.toLowerCase() === needle.toLowerCase()) { 
    8.  
    9.      found = true
    10.  

    11.   推荐阅读

        17个案例带你3分钟搞定Linux正则表达式

      正则表达式是一种字符模式,用于在查找过程中匹配制订的字符。元字符平日在Linux平分为两类: Shell元字符,由Linux Shell进行解析; 正则表达式元字符,由vi/grep/sed/awk等文本处理>>>详细阅读


      本文标题:测试JavaScript函数的性能

      地址:http://www.17bianji.com/lsqh/36647.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)