問題タブ [benchmarking]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unix - time(1) の出力で「real」、「user」、および「sys」は何を意味しますか?
時間の出力で、 と は何を意味しrealますかuser?sys
アプリのベンチマークを行う際に意味のあるものはどれですか?
c++ - K回実行されるコードをベンチマークするためのUnixコマンド
次のようにUnixでコードを実行するとします。
私の質問は、実行されたコードの実行時間をK回計測する方法があるということです。たとえば、K=1000の値。
Unixの「time」コマンドを知っていますが、実行されたのは1つのインスタンスだけです。
c - Intel Core 2 Duo の命令パイプラインをドレインしますか?
C でいくつかの非常に短い操作のマイクロ ベンチマーク コードを書いています。たとえば、渡された引数の数に応じて、空の関数を呼び出すのに必要なサイクル数を測定しています。
現在、各操作の前後にRDTSC命令を使用してタイミングを計り、CPUのサイクル数を取得しています。ただし、最初の RDTSC の前に発行された命令が、測定している実際の命令の速度を低下させる可能性があることを懸念しています。また、2 番目の RDTSC が発行される前に完全な操作が完了しないのではないかと心配しています。
新しい命令が発行される前に、実行中のすべての命令を強制的にコミットする x86 命令を知っている人はいますか? CPUIDがこれを行う可能性があると言われましたが、そう言っているドキュメントを見つけることができませんでした.
benchmarking - AB を使用した負荷テスト ... 偽の失敗したリクエスト (長さ)
私自身の好奇心のために、サーバーでいくつかの負荷テストを実行するために、次のコマンドを実行しました。
これにより、50 のキープアライブ接続が 200 秒間開かれ、サーバーが index.php のリクエストでバタンと閉められます。
私の結果では、次のようになります。
32951 の「失敗した」リクエストに注意してください。私はこれを理解することはできません。
テストの実行中、自宅のコンピューターから自分の Web サイトに完全にアクセスできましたが、ページの下部にあるページの読み込み時間は、通常の .02 ではなく .5 と報告されていました。ただし、リクエストが失敗したことは一度もありません。
では、なぜ AB は接続の半分が失敗したと報告しているのでしょうか? そして、「長さ:」はその文脈で何を意味するのでしょうか?
perl - シュワルツ変換はどのような場合に役立ちますか?
「Intermediate Perl」の本を読んでいるときに、Schwartzian Transforms のセクションに気付き、演習 (9.9.2) の例を試しましたが、複数回実行すると変換に通常のソートよりも時間がかかることに気付きました。ここのコードは、ファイル サイズに基づいて、windows\system32 ディレクトリ内のファイルの単純な並べ替えを実行します。
出力は -
私の理解では、ファイル操作 (-s) は testB の場合に何度も繰り返す必要があるため、testA よりもはるかに遅く実行する必要があります。ただし、出力はその観察から逸脱しています。ここで何が欠けていますか?
java - PyStone でテストすると、Jython の動作に一貫性がないのはなぜですか?
私は最近 Jython で遊んでいましたが、pystone を使って簡単で汚いベンチマークを行うことにしました。リファレンスを得るために、最初にループ数を増やして cPython 2.6 をテストしました (Jython はしばらくしてから JIT から利益を得るようになるはずなので、これは適切であると考えました)。
ご覧のとおり、cPython は一貫して動作します。テストを完了するのにかかる時間は、ループの数に比例して増加します。これを知って、Jython のテストを開始しました。
最初の実行中、Jython は C の兄弟に比べてかなりお粗末に実行されます。ループの数を増やすと、私の最初の仮説が予測したように、cPython に近づき、気分が良くなり始めました。ループの数は 10 倍に増えましたが、Jython がそれらを完了するのに約 5 倍の時間しかかからなかったことに注意してください。ですから、ご想像のとおり、Jython が最終テストで本当にうまくいくことを期待していました。しかし、非常に残念なことに、最初の実行よりも 2 倍以上遅くなりました。
あなたの仮説は何ですか: Jython がこれほど一貫性のない動作をするのはなぜですか? ある時点で GC が開始され、多くの時間がかかっている可能性がありますか? PyStone のコードを調べたところ、ガベージ コレクションがオフになっていないように見えますが、Java の GC は少なくとも Python と同じくらい優れていると思います...この速度低下は永続的だと思いますか、それともなくなると思いますか?ループ数を増やした後のある時点で?Jython は、非常に長時間実行されるプロセスでどのように動作しますか?
EDIT:残念ながら、java.lang.OutOfMemoryErrorループ数を200万に増やすと...
(もちろん、Jython はまだベータ版なので、最終リリースでは改善されるはずです。)
Jython 2.5b1 (トランク:5903:5905、2009 年 1 月 9 日、16:01:29)、Java(TM) SE ランタイム環境 (ビルド 1.6.0_07-b06-153)、および Java HotSpot(TM) 64 ビットを使用しています。 MacOS X 10.5 上のサーバー VM (ビルド 1.6.0_07-b06-57、混合モード)。
回答ありがとうございます。
windows - Windows で反復可能な CPU バウンド ベンチマーク ランタイムを取得するにはどうすればよいですか?
ランタイムを測定するために、CPU バウンドのテストを実行する必要がある場合があります。テストは 1 分程度続きます。問題は、実行ごとにランタイムがかなり (+/- 5%) 変動することです。この変動は、システム上の他のアプリケーション/サービスからのアクティビティが原因であると考えられます。たとえば、次のようなものです。
- アイドル時間にハウスキーピングを行うアプリケーション (例: IntelliSense を更新する Visual Studio)
- ファイルシステム インデクサー
- 等..
ベンチマークのタイミングをより安定させるためのヒントは何ですか?
現在、他のすべてのアプリケーションを最小化し、「通常以上」の優先度でテストを実行し、テストの実行中はマシンに触れないようにしています。
hardware - コードが壊れていないことを証明する方法はありますが、ハードウェアは壊れていますか?
私はそれがどこでも繰り返されると確信しています。ネットワークが遅い、またはマシンである、遅い、または何かを「感じる」ことができます。ただし、サーバー/シャーシのログには何も表示されないため、IT部門はあなたを信じていません。職業はなんですか?
リグレッションには2倍の時間がかかります...しかしそれだけでは十分ではありませんddなどを使用して100GBを転送しますが、...それだけでは不十分です。サーバーを別のシャーシに2週間配置しても、正常に動作します...しかし..それだけでは不十分です...
では、どのようにしてITにシャーシを交換してもらうのでしょうか。
より具体的には、2つのセットアップ(同一であると想定)で実行できるスイートがありますか?これは、ネットワーク/ CPU /ディスクアクセスの違いを示す可能性があります..ITが信じますか?
iphone - iPhone で関数を呼び出すのにかかる時間を正確に測定するにはどうすればよいですか?
少なくとも 1 ミリ秒の精度でオブジェクトにメッセージを送信するのにかかる時間を知りたいです。どうすればいいですか?
benchmarking - ベンチマーク時に、CPU 時間と「経過リアルタイム」の間にラグが生じる原因は何ですか?
組み込みのベンチマーク モジュールを使用して、いくつかの簡単で汚れたテストを行っています。それは私に与えます:
- CPU時間
- システムの CPU 時間 (実際、実行中のコードでは結果が得られません)
- ユーザーとシステムの CPU 時間の合計 (私の場合は常に CPU 時間と同じ)
- 経過リアルタイム
そのような情報がすべて必要であることさえ知りませんでした。
2 つのコードを比較して、どちらが時間がかかるかを確認したいだけです。1 つのコードが他のコードよりも多くのガベージ コレクションを実行することはわかっていますが、それがどの程度の影響を与えるかはわかりません。
私が見るべき指標はありますか?
そして、最も重要なことは、「経過したリアルタイム」が常に CPU 時間よりも長い理由を誰かが説明できますか?