标签: jsperf

解释这个JsPerf.com结果

我在这个网站http://jsperf.com/上进行了测试

这是我运行的jsperf测试的屏幕截图

我想要一些人解释一下

  1. 绿色和粉红色表示什么
  2. 什么是每秒操作数
  3. 什么是95,814,583
  4. 什么是+ - 1.95%
  5. 什么是'最快'和'慢'意味着什么

javascript performance benchmarking jsperf

9
推荐指数
1
解决办法
1196
查看次数

是否可以从jsperf删除损坏的修订版?

我正在用jsperf(这里)改进我的一些脚本的性能的第一步.

我想知道是否有可能删除/删除我意外发布的测试版本 - 它们已被破坏且无法使用,因此:

问题:
假设我在进行修订5时想出它是如何工作的 - 有没有办法删除修订版1-4?

谢谢!

javascript performance jquery jquery-mobile jsperf

8
推荐指数
1
解决办法
926
查看次数

为什么在没有主人的情况下调用函数会变慢?

如果我执行以下操作:

var abs = Math.abs;

abs(-10)应该快Math.abs(-10)?因为abs是直接调用的.

这就是我的注意力: Math.abs vs自定义abs功能 在jsperf.com上完成测试的结果

更新:

在Internet Explorer 11中执行的相同测试显示了完全不同的结果: 在jsperf.com上完成测试的结果

我推测这是由于对Chrome V8引擎内置功能的一些优化.

nnnnnn创建的测试,阐明了我想说的内容:属性快捷方式 在jsperf.com上完成测试的结果

javascript optimization jsperf

8
推荐指数
1
解决办法
334
查看次数

使用Object.create(null)创建空对象的影响和好处

首先,我做了一个快速的jsperf测试用例来显示明显的:
Object.create(null)比使用{}语法创建对象慢.
http://jsperf.com/js-object-creation-null-proto

但鉴于这一事实,前一种情况有时可能是优化和性能的一个很好的选择吗?换句话说,操纵最轻量级的js对象可以提高性能,因此在某些情况下使用它成为一个合理的选择.

我指的是你要大量访问对象属性的情况,或者大量使用for in循环.

这种方法是否有太大的风险,无法在库中使用,人们可能会导致这些对象不具备标准Object原型所带来的标准属性?

另外,你知道另一种(更快)的方法来创建最轻量级的js对象吗?

PS:我做了一个简短的测试用例来说明使用Object.create(null)和访问属性比使用更快一些的情况{}.
http://jsperf.com/js-object-creation-and-accessing-properties

javascript performance object jsperf

7
推荐指数
1
解决办法
849
查看次数

jQuery选择器性能:一个奇怪的案例

我测试了2个ID选择器之间的差异,第一个是正常的:$('#lol') 第二个是相同的但放在多个括号之间:$((((('#lol')))))

我使用firefox和chrome在jsperf上启动了测试.结果很有趣:使用firefox,第一个(普通选择器)慢40%(!!!).使用铬,第二个慢0.84%.

为何如此不同?有人可以解释一下吗?

jsperf.com可靠吗?

你可以在这里看到测试:

http://jsperf.com/ghshshsrd

我将测试其他浏览器,以获得乐趣.

(编辑:顺便说一下,我在Mac OS X上)

testing performance jquery jquery-selectors jsperf

7
推荐指数
1
解决办法
296
查看次数

jQuery - 为什么用字符串创建对象($('<div class ="foo"/>'))比创建相同的对象和执行addClass()方法慢?

任何人都可以解释为什么通过字符串创建对象比同一个对象慢,并在jQuery中执行addClass()方法?

我认为addClass()方法会慢一点,但事实并非如此.我想知道为什么?

看看这个jsPerf - http://jsperf.com/jquery-append-with-class-and-with-method-addclass

jquery class append jsperf

6
推荐指数
1
解决办法
471
查看次数

快速并省去了在JavaScript中删除有关数字的符号的方法

我想在JavaScript中删除数字的符号.以下是我在jsperf上检查过的测试用例(http://jsperf.com/remove-sign-from-number)

if(n < 0) n *= -1;

if(n < 0) n = -n;

n = Math.abs(n)

(n < 0) && (n *= -1)

(n < 0) && (n = -n)

n = Math.sqrt(n*n)
Run Code Online (Sandbox Code Playgroud)

根据这些测试:if(n < 0) n *= -1似乎是一个很好的解决方案.

你知道更好,更省,更有效的方法吗?

编辑1:添加了Nikhil的Math.sqrt情况,但sqrt在大多数系统中通常都很慢.

编辑2: Jan的按位运算建议在某些情况下可能会更快,但也会删除小数位,因此对我不起作用.

javascript performance signed numbers jsperf

6
推荐指数
3
解决办法
3287
查看次数

为什么要按大小更快地迭代数组

在第一个例子中,我创建了长度为1000的空数组:

var arr = new Array(1000);

for (var i = 0; i < arr.length; i++)
  arr[i] = i;
Run Code Online (Sandbox Code Playgroud)

在第二个示例中创建了长度为0的空数组:

var arr = [];

for (var i = 0; i < 1000; i++)
  arr.push(i);
Run Code Online (Sandbox Code Playgroud)

在OS X 10.10.3上的Chrome 41.0.2272.118中进行测试,第一个块运行得更快.为什么?因为JavaScript引擎知道数组大小?

基准测试在这里http://jsperf.com/poerttest/2.

javascript arrays performance v8 jsperf

3
推荐指数
1
解决办法
108
查看次数

为什么window.innerheight的性能这么差?

我正在测试一个我的朋友注意到的测试用例。他在循环中使用window.innerheight,并且fps大幅下降。

这是我为测试它而创建的jsperf的链接http://jsperf.com/innerheight

我能提出的唯一解释是,这是一个吸气剂,并在每次调用时计算实际高度。那正确吗?我可以在此验证任何文档吗?

javascript performance jsperf

2
推荐指数
1
解决办法
1157
查看次数

更快的循环:foreach与一些(jsperf的性能与节点或Chrome不同)

这是将数组的值恢复为简单值truefalse值的最佳方法。

作为jsperf是给我,我很困惑非常比谷歌浏览器控制台的NodeJS,或任何其他JS引擎带给我不同的结果。(此处为jsperf片段

jsperf性能不佳图片

这是代码段,您可以看到(可以在此处运行)some比使用foreach循环快100倍

var array = [];
var i = 0;
var flag = false;
while (i< 100000) {
    array.push(Math.random()*10000);
    i++;
}

console.time('forEach');
array.forEach((item) => {

    if (!flag && item > 10000/2) {
        flag = true;
        return;
    }
    return false
});
console.timeEnd('forEach');
console.log(flag);

flag = false;
console.time('some');
flag = array.some((item) => {

    if (item > 10000/2) {
        return true;
    }
    return false
});
console.timeEnd('some');
console.log(flag);
Run Code Online (Sandbox Code Playgroud)

问题是,为什么JSPERF给出的结果与chrome的控制台,nodejs或任何其他JS引擎不同?

编辑:正如我对下面问题的回答所指出的那样,此行为是有问题的,因为 …

javascript arrays performance performance-testing jsperf

2
推荐指数
1
解决办法
2184
查看次数