请留意第一次时光和其它九次的时光完全不一样。这很可能是因为浏览器中的JavaScript引擎应用了优化办法,须要一些热身时光。我们根本膳绫腔有办法避免这种情况,然则会有一些好的解救办法来阻拦我们得出一些缺点的结论。
我们已司懂得衡量一些函数很多次并取平均值总会是一个好主意。并且,膳绫擎的示例告诉我们应用中位数要比平均值更好。
让我们再试一次,此次我们应用中位数函数:
在上一节中,我们进修到的一个很好的实践是反复履行一些操作,幻想情况下应用不合的输入。然而,我们要记住应用不合的输入带来的问题,即某些输入的履行时光可能会花费所有其它输入的履行时光都长。如许让我们退一步来应用雷同的输入。假设我们发送同样的输入十次,每次都打印花费了多长时光。我们会获得像如许的输出:
- var numbers = [];
- for (var i=0; i < 10; i++) {
- var t0 = performance.now();
- makeHash('Peter');
- var t1 = performance.now();
- numbers.push(t1 - t0);
- }
- function median(sequence) {
- sequence.sort(); // note that direction doesn't matter
- return sequence[Math.ceil(sequence.length / 2)];
- }
- console.log('Median time', median(numbers).toFixed(4), 'milliseconds');
缺点 #4 – 以可猜测的方法比较函数
在实际中,衡量函数履行时光的一个很好的用处是来懂得在几个函数中,哪个更快。假设我们有两个函数,它们的输入参数类型一致,输出结不雅雷同,然则它们的内部实现机制不一样。
- function isIn(haystack, needle) {
- var found = false;
- haystack.forEach(function(element) {
- if (element.toLowerCase() === needle.toLowerCase()) {
- found = true;
推荐阅读
正则表达式是一种字符模式,用于在查找过程中匹配制订的字符。元字符平日在Linux平分为两类: Shell元字符,由Linux Shell进行解析; 正则表达式元字符,由vi/grep/sed/awk等文本处理>>>详细阅读
本文标题:测试JavaScript函数的性能
地址:http://www.17bianji.com/lsqh/36647.html
1/2 1