問題タブ [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.

0 投票する
6 に答える
68121 参照

python - Pythonでrange()をループする方が、whileループを使用するよりも速いのはなぜですか?

先日、Pythonのベンチマークを行っていたところ、何か面白いものに出くわしました。以下は、多かれ少なかれ同じことを行う2つのループです。ループ1の実行にはループ2の約2倍の時間がかかります。

ループ1:

ループ2:

最初のループが非常に遅いのはなぜですか?些細な例だとは思いますが、興味をそそられます。同じ方法で変数をインクリメントするよりも効率的にするrange()関数について何か特別なことはありますか?

0 投票する
2 に答える
455 参照

performance - Erlangノードの優先順位付け

n個のErlangノードのクラスターがあり、そのうちのいくつかはLAN上にあり、他のノードはWANを使用して(つまり、インターネット経由で)接続されていると仮定すると、a)異なる帯域幅の可用性/動作に対応するための適切なメカニズムは何ですか? (たとえば、遅延が誘発される)およびb)計算能力が異なるノード(またはそのことについてはメモリの制約さえある)?

言い換えると、計算能力の高いローカルノードを、レイテンシが高く強力でない可能性のあるローカルノードよりも優先する方法、または送信レイテンシの高い高性能リモートノードを優先して、これらのプロセスを具体的に実行する方法を教えてください。比較的巨大な計算/送信(つまり、メッセージごと、時間単位ごとの完了した作業)の比率?

私は主に、クラスター内の各ノードにベンチマークプロセスを送信して初期化中に実行することでベンチマークを行うことを考えています。これにより、メッセージ処理に関連するレイテンシーと全体的な計算速度を計算できます(つまり、ノードを使用します)。 -ノードが任意のタスクで終了する速度を決定するための特定のタイマー)。

おそらく、そのようなことは、一方では代表的なデータ(つまり平均化データ)を取得するために繰り返し実行する必要があり、他方では動的に調整できるようにするために実行時に役立つ可能性さえあります実行時条件の変更に。

(同じ意味で、他のマシンで実行されているノードよりもローカルで実行されているノードを優先したい場合があります)

これは、特定のノードが特定のジョブを処理できるように、内部ジョブディスパッチを最適化することを目的としています。

0 投票する
4 に答える
491 参照

mysql - オープンソースデータベースソフトウェアの正式なベンチマークはありますか?

オープンソースデータベース、特にsqlite、MySQL、PgSQLの正式なパフォーマンスおよびストレステストレポートはありますか?

シンプルな構造と簡単な埋め込み機能のために、サーバーでsqliteを使用したいと思います。しかし、これらのデータベースソフトウェアのパフォーマンスに関する(グーグルとヤフーによる)賛否両論は見つかりません。

提案してください。

0 投票する
2 に答える
17884 参照

networking - ネットワーク パフォーマンスの測定方法 (ネットワーク プロトコルのベンチマーク方法)

まず、背景を少し。リポジトリのサイズや操作速度のベンチマークを比較する分散バージョン管理システム (DVCS) のさまざまな比較があります。「クローン」、「プル」/「フェッチ」、「プッシュ」などのネットワークを含む操作 (コマンド) の速度を測定する以外に、さまざまな DVCS と使用されるさまざまなプロトコルのネットワーク パフォーマンスをベンチマークするものは見つかりませんでした。

では、そのような比較をどのように行うかを知りたいです。アプリケーションのネットワーク パフォーマンスを測定する方法、またはネットワーク プロトコルをベンチマークする方法。ここでは、特に、ネットワークの帯域幅とネットワークの遅延 (ping 時間) の両方に対するパフォーマンスの依存度を測定することを想定しています。一部のプロトコルは、最小限の必要な最終「パック」を送信するために、より多くのラウンドトリップ交換 (ネゴシエーション) の形でレイテンシーを犠牲にします。

可能であれば、1 台のコンピューターのみを使用するソリューションを希望します。Linux で動作するオープン ソース ソリューションを見たいと思っています。しかし、より一般的な回答も歓迎します。

推奨 OS: Linux
推奨言語: C、Perl、シェルスクリプト


可能な測定:

  • 1 つのセッションでサーバーからクライアントへ、およびクライアントからサーバーへ転送された合計バイト数。これは、プロトコルのオーバーヘッド(帯域幅)を測定するためにも使用できます。
  • 1 回のトランザクションでの往復 (接続) の回数(レイテンシ)
  • ネットワーク帯域幅およびネットワーク遅延 (ping 時間) からのネットワーク操作速度 (クローン/プル/プッシュにかかる時間) の依存性

そのような測定(ベンチマークなど)を行う方法は?


2009 年 2 月 6 日追加:
最も単純なベンチマーク (測定) は、コマンドのネットワーク バージョンですtime。つまり、コマンドを実行すると、転送されたバイト数と、特定のコマンドの実行中の往復/ネットワーク接続の数がわかります。


2009 年 9 月 6 日追加:コマンドのネットワーク バージョンの上記のソリューションの架空の出力
timeは、次のようになります。

これは単なる出力例であり、取得したい情報の種類を詳述していることに注意してください。


09-06-2009 追加:ネットワーク プロトコルをテストするためのツール (元々) であるdummynet
を使用して、私が望むもののいくつかを達成できるようです...

0 投票する
1 に答える
2725 参照

apache - apachebench が異常なエラー メッセージで異常終了する

Apacheで非常に単純なphpファイルを実行します。次に、Apache のベンチマークを行います。

しかし、c によっては次のエラー メッセージが表示されます (c=1 の場合は問題ありません)。

OSX 10.5.7 でバージョン 2.3 の ApacheBench を使用しています。

非常に単純な PHP ファイルは次のようになります。

0 投票する
5 に答える
2037 参照

.net - .NET プログラムの関数実行時間をプロファイリングするツール

関数の実行時間を測定し、コール グラフのさまざまなポイントで費やされた時間を視覚化するグラフを生成して、.NET プログラムのプロファイリングを行うために使用できるツールは何ですか?

0 投票する
2 に答える
353 参照

performance - ワードプレスのパフォーマンスベンチマーク

オンラインフラッシュゲーム用にワードプレスベースのブログを設定しました。ウェブサイトはwww.nirgame.comです。Webサイトのパフォーマンステストに使用できるツールを知る必要があります。素朴で申し訳ありませんが、私はC ++の世界から来ており、このPHP / Apache/MySqlは私にとって新しいものです。

0 投票する
3 に答える
3621 参照

apache - 遅延のあるApacheをベンチマークする方法は?

UNIXコマンドラインからのリクエスト間の遅延でApacheをベンチマークする良い方法は何ですか? コマンドラインから私が知っている唯一のベンチマークツールは ab で、遅延をサポートしていません。

0 投票する
8 に答える
70382 参照

javascript - JavaScript コードをベンチマークするにはどうすればよいですか?

JavaScript コードのベンチマークに役立つパッケージはありますか? Firebug やそのようなツールについて言及しているわけではありません。

実装した 2 つの異なる JavaScript 関数を比較する必要があります。私は Perl の Benchmark ( Benchmark.pm ) モジュールに精通しており、JavaScript で同様のものを探しています。

JavaScript コードのベンチマークを重視することは行き過ぎたのでしょうか? 関数を 1 回実行するだけでタイミングを逃すことはできますか?

0 投票する
3 に答える
1008 参照

c++ - C++、キャッシュの局所性の改善をベンチマークする方法は?

2 つの情報への 2 つのポインターを持つクラス X の実装があります。クラス Y という新しい実装を作成しました。これは、隣接するメンバーとして 2 つの情報を一緒に含む構造体へのポインターを 1 つだけ持ちます。X と Y のメソッドは通常、情報の断片の 1 つを操作するだけで済みますが、2 番目の断片へのポインタを返す get() メソッドを提供します (この場合、クラス X はその断片へのポインタを返すだけで、クラス Y はアドレスを返します)。構造体の 2 番目のメンバーの)。通常の使用法では、X と Y のメソッドへの呼び出しは、get() への呼び出しと、返された 2 番目の部分での作業によって散在して発生します。

クラスYの実装では、2つの情報がメモリ内で隣り合っているため(構造体の隣接メンバーであるため)、実際の状況ではパフォーマンスが向上するはずですが、表示されていません私が書いたベンチマークの違い (X と Y のメソッドへの呼び出しを散在させ、大きなループで 2 番目の部分で作業を行う)。これは、私のテストでは、いずれの場合もすべてがキャッシュに収まるためだと思われます。X と Y のセマンティクスは、この最適化とは関係のない他の微妙な方法で異なり、使用するアプリケーションを移植するのはいくらかの作業になるため、実際のアプリではまだこれを試したくありません。これらのベンチマークは、それを行うことを正当化するのに役立つはずです。そもそも働く。

キャッシュの局所性が向上したことによるパフォーマンスの違いを観察する最善の方法は何ですか? 呼び出しの間にキャッシュのサイズに等しい配列で一連のダミー作業を行うと、それで十分ですか? それとも、キャッシュ サイズよりもわずかに小さい配列で作業を行いたいので、クラスのインスタンスで作業を行うと、物事がキャッシュに出入りするようになりますか? コンパイラの最適化やさまざまなキャッシュ サイズに対して堅牢なコードを作成する方法がわかりません。