标签: jsperf

Concat在开始时串起来

在字符串开头添加新值的最快方法是什么?

javascript string performance concat jsperf

87
推荐指数
6
解决办法
11万
查看次数

jsPerf如何工作?

今天我参观了jsPerf,现在我想知道......

  1. 什么是"ops/sec"?
  2. 它会做多少次迭代?
  3. 在什么基础上计算哪个更快?这些计算背后的公式是什么?

示例:http://jsperf.com/concatenation-vs-join

有人能告诉我吗?

提前致谢.

javascript performance benchmarking jsperf

41
推荐指数
2
解决办法
8941
查看次数

大型子串在Firefox中比Chrome快9000倍:为什么?

基准:http://jsperf.com/substringing

所以,我正在启动我的第一个基于HTML5浏览器的客户端项目.它必须将非常非常大的文本文件解析成一个或多个对象的数组.我知道我将如何编码呢; 我现在主要关注的是尽可能快地获取解析器代码,而我的主要测试平台是Chrome.然而,在查看子串方法之间的差异时(我很长时间没有触及过JavaScript),我注意到与FireFox相比,Chrome中的这个基准测试速度非常慢.为什么?

我的第一个假设是,它与FireFox的JS引擎处理字符串对象的方式有关,而对于FireFox,这个操作是简单的指针操作,而对于Chrome,它实际上是做硬拷贝.但是,我不确定为什么Chrome 不会做指针操作或为什么FireFox .有人有见识吗?

JSPerf似乎丢弃了我的FireFox结果,而不是在BrowserScope上显示它们.对我来说,我.substr()在FF4中获得了9,568,203±1.44%Ops/sec .

编辑:所以我在Chrome下面看到了FF3.5的性能结果.所以我决定测试我的指针假设.这让我进入了我的Substrings测试的第二次修订,它1,092,718±1.62%在FF4中的1,195±3.81%Ops /秒与Chrome中的Ops/sec 相比,速度提高了不到1000倍,但仍然是性能上无法解释的差异.

后记: 不,我不关心舔一下Internet Explorer.我很关心尝试提高自己的技能,并在更深层次上了解这种语言.

javascript performance firefox google-chrome jsperf

19
推荐指数
1
解决办法
906
查看次数

为什么双重查找比javascript中的单个查找更快?

我在jsperf测试中看到了一些奇怪的行为.这是设置:

var pro={};
pro._x=3;
var q=Object.create(pro);
q.x=3;
q.z={};
q.z.x=3;
Run Code Online (Sandbox Code Playgroud)

然后,我只是查找每个属性q.x,q._xq.z.x.

单个查找q.xq._x预期的原型查找更快.但双重查找q.z.x是最快的.我预计q.z.x会是最慢的,特别是与之相比时q.x.

q.z.x甚至比q.z.这里发生了什么?

javascript jsperf

16
推荐指数
1
解决办法
539
查看次数

使用HTML5的性能和性能测量JS性能.定义对象

我根据HTML5提供的性能对象测量我网站的性能,我想知道我的应用程序出了什么问题,我还想在我的本地数据库中记录其他最终用户的这些性能对象,以便我有信息来自他们的方面,但我不太熟悉每个属性意味着什么,比如可能是connectStart,connectEnd延迟的原因......我根据我的知识创建了一个地图,但我需要社区的输入.这对其他人也很有帮助

var issueList = {
    'connectStart':         'Network issue',
    'connectEnd':           'Server is not responding fast with SSL handshake',
    'domainLookupStart':    'Network issue',
    'domainLookupEnd':      'Network issue',
    'fetchStart':           'Slow browser',
    'redirectStart':        'Network issue',
    'redirectEnd':          'Busy server',
    'requestStart':         'Network issue',
    'responseStart':        'Server is slow',
    'domLoading':           'Low internet bandwidth',
    'unloadEventStart':     'Slow browser',
    'unloadEventEnd':       'Slow browser, browser processes are too heavy',
    'navigationStart':      'Slow browser',
    'responseEnd':          'Network issue',
    'domInteractive':       'Browser issue',
    'domContentLoadedEventStart':   'Network issue',
    'domContentLoadedEventEnd':     'Network issue',
    'domComplete':          'Too much DOM manipulation',
    'loadEventStart':       'Unknown',
    'loadEventEnd':         'Low JS performance, …
Run Code Online (Sandbox Code Playgroud)

javascript performance jquery html5 jsperf

15
推荐指数
1
解决办法
388
查看次数

Array.map的Javascript性能

刚刚在jsperf中编写了一些测试用例,以便在使用Array.map和其他替代方法时测试命名函数和匿名函数之间的区别.

http://jsperf.com/map-reduce-named-functions

(原谅网址名称,这里没有测试Array.reduce,我在完全决定我要测试的内容之前命名了测试)

一个简单的for/while循环显然是最快的,我仍然感到惊讶的是,速度慢了10倍Array.map......

然后我尝试了mozilla的polyfill https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map#Polyfill

Array.prototype.map = function(fun /*, thisArg */)
{
    "use strict";

    if (this === void 0 || this === null)
        throw new TypeError();

    var t = Object(this);
    var len = t.length >>> 0;
    if (typeof fun !== "function")
        throw new TypeError();

    var res = new Array(len);
    var thisArg = arguments.length >= 2 ? arguments[1] : void 0;
    for (var i = 0; i < len; i++)
    {
        // NOTE: Absolute …
Run Code Online (Sandbox Code Playgroud)

javascript performance jsperf

14
推荐指数
1
解决办法
1万
查看次数

为什么.html()在用于同一目的时比.text()快得多?

我正在玩jQuery .text().html()方法并运行一些简单的jsPerf测试,当我惊讶地发现.html()在检索文本时要快得多:

  • $div.text() - 88,496次/秒
  • $div.html() - 592,028次/秒

为什么.text().html()结果相同时要慢得多?什么操作.text()可以.html()跳过来解释这种差异?

我知道每种方法都有不同的目的; 我很好奇他们用于同一目的的情况.

javascript performance jquery dom jsperf

13
推荐指数
1
解决办法
513
查看次数

for循环vs for jach javascript中的性能和jsperf结果的可信度

我不相信jsperf测量for循环与forEach性能的结果.至少对我的机器上的chrome和firefox来说,结果与jsperf中广告的结果完全不同.
http://jsperf.com/foreach-vs-loop(我的)
http://jsben.ch/#/BQhED(更受欢迎)
在我的笔记本电脑上运行Ubuntu 11.10我在Firefox中有以下结果:

for: total=1641 ms, avg=164.1 ms  
forEach: total=339 ms, avg=33.9 ms  

uname -a:  
Linux 3.0.0-16-generic #29-Ubuntu SMP Tue Feb 14 12:48:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

很遗憾,Chrome不会返回console.timeEnd()的结果,但Chrome的运行时间相同而且速度更快.我观察到forEach比Chrome中的循环快10倍,在Firefox中快3倍.
在Chrome中,我得到大约这些运行时间:

for: avg=80 ms
forEach: avg=6 ms
Run Code Online (Sandbox Code Playgroud)

这是我在Firefox和Chrome控制台中运行的代码.

var arr = [];
for(var i = 0; i < 100000; i++) arr[i]=i;

var numberOfRuns = 10;

function time(name, f){
    console.time(name);
    f();
    return console.timeEnd(name);
}

function runTest(name, f){
    var totalTime = 0;
    for(var r = 0; r < …
Run Code Online (Sandbox Code Playgroud)

javascript performance jsperf

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

解释这个JsPerf.com结果

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

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

我想要一些人解释一下

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

javascript performance benchmarking jsperf

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

哪个JS基准站点正确?

我在jsperf.com和jsben.ch上创建了一个基准,但是它们给出的结果却大不相同。

JSPerf:https:
//jsperf.com/join-vs-template-venryx JSBench:http://jsben.ch/9DaxR

请注意,代码块完全相同。

在jsperf上,块1比最快的块“慢61%”:

在jsbench上,块1仅比最快的块慢32%:((99-75)/ 75)

是什么赋予了?我希望基准站点至少在百分之几之内能给出相同的结果。

就目前情况而言,由于不一致,我无法得出哪种选择最快的结论。

编辑

基准的扩展列表:

不知道哪个是最好的,但是由于Job提到的原因,我跳过了jsben.ch(最后一个):它不显示运行次数,错误余量或每秒的操作数-对于估算绝对的性能影响以及实现基准站点和/或浏览器与浏览器版本之间的稳定比较至关重要。

(目前,http://jsbench.me是我的最爱。)

javascript performance benchmarking jsperf

9
推荐指数
3
解决办法
2079
查看次数