小编hol*_*ple的帖子

量角器和卡玛可以一起使用吗?

如果Protractor正在取代Angular Scenario Runner进行E2E测试,这是否意味着我仍然可以将它与Karma一起用作我的E2E测试框架?

javascript testing angularjs karma-runner protractor

102
推荐指数
2
解决办法
3万
查看次数

为什么array.push有时比array [n] = value更快?

作为测试一些代码的副作用,我编写了一个小函数来比较使用array.push方法与直接寻址(array [n] = value)的速度.令我惊讶的是,推送方法通常表现得更快,特别是在Firefox中,有时在Chrome中.只是出于好奇:任何人都有解释吗?您可以在此页面找到测试(单击"数组方法比较")

javascript browser arrays performance firefox

69
推荐指数
4
解决办法
3万
查看次数

如何在JavaScript中将时间缩短到最接近的四分之一小时?

例如:

Given time: 08:22 => Rounded to: 08:15

Given time: 08:23 => Rounded to: 08:30
Run Code Online (Sandbox Code Playgroud)

应该很简单.但我能够生成的只是冗长而不是很好的代码来解决这个问题.我的思绪一片空白.

问候

javascript time

50
推荐指数
5
解决办法
4万
查看次数

哪个更快:Math.abs(值)或值*-1?

非常简单,但我只是想知道哪个更快.

我认为简单地乘以数字-1比调用预定义方法要快得多,前提是您确定该值为负数.

但如果是这样,那么abs()功能是什么?它是否只是为了确保返回的值始终是正值而不管值的符号?

javascript performance

40
推荐指数
4
解决办法
3万
查看次数

在JS中,哪个更快:Object的"in"运算符或Array的indexof?

我想保留一个字符串列表,我只会检查它是否存在,例如:

corporatePlan = [
    'canDeAuthorize',
    'hasGmailSupport',
    'canShareReports',
    'canSummonKraken',
    'etc'
]
Run Code Online (Sandbox Code Playgroud)

因此,当用户试图召唤海妖时,我会corporatePlan.indexof('canSummonKraken') != -1看看他是否可以.

同事建议将它作为对象存储会更快:

"Corporate Plan" = {
    'canDeAuthorize' : null,
    'hasGmailSupport' : null,
    'canShareReports' : null,
    'canSummonKraken' : null,
    'etc' : null
}
Run Code Online (Sandbox Code Playgroud)

并且只'canSummonKraken' in corporatePlan需要检查计划是否包含该密钥.这在经典的CS意义上是有意义的,因为当然"包含"是地图上的恒定时间和数组上的线性.这会检查数组和对象是如何在JS中引入的吗?

在我们的特殊情况下,使用少于100个元素,速度并不重要.但是对于更大的阵列,访问哪种方式会更快?

javascript performance

35
推荐指数
3
解决办法
2万
查看次数

为什么流行音乐比移动快?

JavaScript中的道格拉斯·克罗克福德(Douglas Crockford)表示"转变通常比流行音乐慢得多".jsPerf 证实了这一点.有谁知道为什么会这样?从一个不成熟的角度来看,他们似乎做了几乎相同的事情.

javascript performance

29
推荐指数
3
解决办法
2万
查看次数

为什么Node.JS中的V8比我的原生C++插件更快?

为什么我的C++插件中的Google V8 JavaScript引擎的工作速度明显慢于Node.JS?

我试着编写一些简单的代码来生成JavaScript中的素数,并通过我的C++插件在V8中运行,直接在Node.JS中运行.

我非常震惊,因为两者都应该使用相同的JavaScript引擎,并且两者都执行相同的代码(时间以毫秒为单位,越少越好):

V8 in Node.JS:  495517
V8 in Node.JS C++ Addon:  623598
Run Code Online (Sandbox Code Playgroud)

这是JavaScript模块的源代码和运行相同JavaScript代码的C++插件的源代码(我认为问题不在interop中,因为测量时间直接在JS中工作):

index.js:

var jsInNodeJsPrimeGeneratorBenchmark = require("./javascript.js");
var jsInNativePrimeGeneratorBenchmark = require("./native");

console.log("V8 in Node.JS: ", jsInNodeJsPrimeGeneratorBenchmark.primeGeneratorBenchmark());
console.log("V8 in Node.JS C++ Addon: ", jsInNativePrimeGeneratorBenchmark.primeGeneratorBenchmark());
Run Code Online (Sandbox Code Playgroud)

javascript.js:

function primeGeneratorBenchmark() {
    var result, primeNumberCounter, i, j, isPrime, start, end;

    i = 3;
    primeNumberCounter = 1;

    start = Date.now();

    while (primeNumberCounter < 100000) {
        isPrime = true;
        for (j = 2; j < i; j++) {
            if (i % …
Run Code Online (Sandbox Code Playgroud)

javascript c++ performance v8 node.js

27
推荐指数
1
解决办法
5402
查看次数

JavaScript,使用第二个参数排序更快

我做了一些测试,发现它array.sort(function(a, b) { return a - b; });array.sort();JavaScript 快得多.

结果令人震惊,IE9快1.7倍,FF7 1.6倍,Chrome浏览器6.7倍.

另外,通过我自己在JS中实现快速排序,我发现它比上面提到的两种方法都要快.(两种不同的实现,一种接受比较器函数作为参数,另一种不接受.两者都更快.)

有没有合理的解释?

编辑:我的实现:

没有比较者:

function quickSort(array, from, to) {
    if(typeof from === 'undefined') {
        from = 0;
        to = array.length - 1;
    }
    else if(typeof to === 'undefined') {
        to = array.length - 1;
    }

    if(to - from < 1) {
        return;
    }

    var i = from, pivot = to, t;

    while(i < pivot) {
        if(array[i] > array[pivot]) {
            t = array[i];
            array[i] = array[pivot …
Run Code Online (Sandbox Code Playgroud)

javascript sorting performance

18
推荐指数
1
解决办法
1014
查看次数

通过字符串或整数更快地访问数字属性?

在JavaScript中,您可以使用整数或字符串来获取和设置数组的索引和对象的"数字"属性,并获得相同的结果:

var a=[], o={};
a[1]    = "foo";  a["1"]   == "foo" // true
a["2"]  = "bar";  a[2]     == "bar" // true
a["-3"] = "baz";  a[-.3e1] == "baz" // true
o[1]    = "foo";  o["1"]   == "foo" // true
o["2"]  = "bar";  o[2]     == "bar" // true
o["-3"] = "baz";  o[-.3e1] == "baz" // true
Run Code Online (Sandbox Code Playgroud)

虽然字符串和数字是可互换的 - 对于获取和设置 - 哪个更快(对于数组和对象)?

javascript performance

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

为什么join比正常连接更快

我已经看到了来自不同语言的几个例子,这些例子毫不含糊地证明了连接列表(数组)的元素比连接字符串要快一些.不幸的是我没有找到解释原因?有人可以解释在两种操作下都能运行的内部算法,为什么这种算法比另一种更快.

这是我的意思的python示例:

# This is slow
x = 'a'
x += 'b'
...
x += 'z'

# This is fast
x = ['a', 'b', ... 'z']
x = ''.join(x)
Run Code Online (Sandbox Code Playgroud)

谢谢提前)

javascript python performance join string-concatenation

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