0

メソッドを使用して JavaScript の速度をテストしているconsole.time();ので、ロード時の関数のロード時間を記録します。

if (window.devicePixelRatio > 1) {
    var images = $('img');

    console.time('testing');
    var imagesObj = images.length;
    for ( var i = 0; i < imagesObj; i++ ) {  
        var lowres = images.eq(i).attr('src'),
        highres = lowres.replace(".", "_2x.");
        images.eq(i).attr('src', highres);
    }
    console.timeEnd('testing');
}

しかし、ページをリロードするたびに、かなり異なる値が得られます。この動作をする必要がありますか?それは私に一貫した価値を与えるべきではありませんか?

連続して 5 回ロードしましたが、値は次のとおりです。

  • 5.051ミリ秒
  • 4.977ミリ秒
  • 8.009ミリ秒
  • 5.325ミリ秒
  • 6.951ミリ秒

私はこれをXAMPPとChromeで実行しています。

前もって感謝します

4

2 に答える 2

1

常に変化があり、多くのことが原因である可能性があります。

  • サーバーの応答が少し遅くなります (hat はブラウザーの他の部分もブロックする可能性があります)
  • あなたのプロセッサはその間に何かをしています
  • 電力を節約するためにプロセッサのクロックを下げました
  • ネットワーク内のランダムな遅延
  • バックグラウンドで何かをしているブラウザ拡張機能

また、Firefox には、javascript の実行をインテリジェントに最適化しようとするシステムがあり、ほとんどの場合、パフォーマンスは向上しますが、多少ランダムです。

于 2013-10-31T22:47:56.273 に答える
1

console.time/endTime正しく動作しており、タイミングは実際にわずかに変動します。

しかし、このような小さな数字を扱う場合、タイミングはすべて 1/100 秒未満です。- 偏差は無関係であり、膨大な数の要因によって影響を受ける可能性があります。

于 2013-10-31T22:59:26.550 に答える