下一站永远 发表于 2012-12-22 21:31:20

测试驱动javascript开发 -

<div id="cnblogs_post_body">  自动化测试另外一个比较重要的内容点是性能测试,很多问题可能有不止一种解决方案,很多时候并不知道哪个是最好的解决方案。例如有很多创建javascript对象的方法,使用javascript构造器、使用函数的方法或者使用闭包。我们可能会从可测试化、灵活性和性能的角度去考虑使用哪种方式。足见性能是相当重要的一点。
  1.基准和相对性能

  当一个问题我们有两个以上的解决方案的时候,判断哪个解决方案更好的原则很简单,就是哪个的性能更好。判断的原则也很简单:1.创建new Date()作为开始时间;2.执行要衡量的代码;3.代码执行完毕,创建new Date()作为结束时间,减去开始时间算出总时长;4.替换执行代码,重复上述步骤;5.比较各种方案的执行时长。
  每个要比较的代码我们需要执行很多次,通常会把他们放在一个循环中。因为windows xp和vista操作系统的浏览器的timer的间隔时间是15ms,让这个问题变的更加复杂,测试会变的相当不准确,所以我们需要保证测试代码运行时长在500ms以上。
  下面是我们用来做性能测试的代码,文件为benchmark.js:
<div class="cnblogs_code">var ol;
function runBenchmark(name, test) {  if (!ol) {    ol = document.createElement("ol");    document.body.appendChild(ol);  }  setTimeout(function () {    var start = new Date().getTime();    test();    var total = new Date().getTime() - start;    var li = document.createElement("li");    li.innerHTML = name + ": " + total + "ms";    ol.appendChild(li);  }, 15);}
页: [1]
查看完整版本: 测试驱动javascript开发 -