問題タブ [microbenchmark]
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.
java - 関数を呼び出さないよりも関数を呼び出す方が速いのはなぜですか?
次のコードを試しました:
コンソールへの出力は次のとおりです。
2 番目のループは最初のループよりも時間がかからなかったようです! なぜこれが起こるのかわかりません。助けてくれてありがとう。
更新: 2 つのループを交換したので、ループ 1 の時間が短縮されました!!
java - Java メモリ ベンチマーク
私は現在、カスタム データ構造で構成される Java で独自のペット プロジェクトを開発しています。パフォーマンスを測定するために Google Caliper フレームワークを選択しましたが、データ構造のメモリ使用量を測定するには、VisuamVm (ヒープをダンプし、オブジェクトの保持サイズの計算を待つ) を使用して毎回測定し、有効な結果を得る必要があります。ある種の「メモリベンチマーク」テストを行いたいです。
したがって、質問は次のとおりです。
データ構造のメモリ消費を測定するためのテストを作成できる、CaliperまたはJunitBenchmarksに似た Java フレームワークはありますか?
r - R でのベクトルへの効率的な変換
このRコードをより効率的にするのを手伝ってくれる人はいますか?
文字列のリストを文字列のベクトルに変更する関数、または数値のリストを数値のベクトルに変更する関数、型指定された要素のリストを特定の型のベクトルに変更する関数を作成しようとしています。
リストに次のプロパティがある場合、リストを特定のタイプのベクトルに変更できるようにしたい:
それらは均一に型付けされます。リストのすべての要素は、「文字」または「複合」などのタイプです。
リストの各要素の長さは 1 です。
/li>
例えば、
上記のコードは正常に動作しますが、非常に遅く、関数の動作を変更せずに最適化する方法がわかりません。関数「as_atomic」がそのように動作することが重要です。よく知っている基本機能 (たとえば、リスト解除) に切り替えることができません。これは、不適切なリストに対してエラーをスローする必要があるためです。
私の (かなり高速な) マシンでは、ベンチマークの周波数は約 40 Hz であるため、この関数はほとんどの場合、私のコードではレート制限になっています。vapply コントロール ベンチマークの周波数は約 1650Hz ですが、それでもかなり遅いです。
この操作の効率を劇的に改善する方法はありますか? アドバイスをいただければ幸いです。
説明や編集が必要な場合は、下にコメントを残してください。
編集:
皆さんこんにちは、
お返事が大変遅くなり申し訳ありません;;これを再実装する前に、必要な試験がありました。
パフォーマンスのヒントをありがとうございました。単純な R コードを使用して、ひどい 40hz から許容範囲内の 600hz にパフォーマンスを上げました。
is; の代わりに typeof または mode を使用することで、最大のスピードアップが実現しました。これにより、タイトな内部チェック ループが実際に高速化されました。
ただし、実際にパフォーマンスを向上させるには、おそらく弾丸をかじってrcppでこれを書き直す必要があります。
java - Hidden performance cost in Scala?
I came across this old question and did the following experiment with scala 2.10.3.
I rewrote the Scala version to use explicit tail recursion:
and compared it to the following Java version. I consciously made the functions non-static for a fair comparison with Scala:
Here are the results on my computer:
This is scala 2.10.3 on (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_51).
My question is what is the hidden cost with the scala version?
Many thanks.
php - 関数を作成すると、PHP でより多くのリソースが使用されますか?
本当に簡単な質問。純粋な好奇心による、多かれ少なかれ別のマイクロブレンチマーキングの質問です!
しかし、関数を作成すると、PHP でより多くのリソース (メモリや CPU) が使用されますか?
次に例を示します。
対。
それはまた、私の2番目の熟考につながります! ローカル変数を含めることも影響しますか?
例:
対。
対。
java - Java 並列ストリームのパフォーマンス
新しい Java ストリームをいじっているうちに、並列ストリームのパフォーマンスに関連する奇妙なことに気付きました。テキスト ファイルから単語を読み取り、長さが 5 を超える単語をカウントする単純なプログラムを使用しました (テスト ファイルには 30000 単語があります)。
これにより、私のマシンで次の出力が生成されます (最初と最後の 5 回のループ反復についてのみ言及します)。
最初の処理が他の処理よりも 100 倍遅いのはなぜですか? 最初の反復では並列ストリームが順次ストリームよりも遅いのに、最後の反復では 2 倍の速度になるのはなぜですか? シーケンシャル ストリームとパラレル ストリームの両方が時間の経過とともに高速になるのはなぜですか? これはループの最適化に関連していますか?
後で編集: Luigi の提案で、JUnitBenchmarksを使用してベンチマークを実装しました。
また、テスト ファイルの単語数を 300000 に増やしました。新しい結果は次のとおりです。
Benchmark.sequentialTest: [105 ラウンド中 100 ラウンドを測定、スレッド: 1 (連続)]
round: 0.08 [+- 0.04]、round.block: 0.00 [+- 0.00]、round.gc: 0.00 [+- 0.00]、GC.calls: 62、GC.time: 1.53、time.total: 8.65、時間.ウォームアップ: 0.81、タイム.ベンチ: 7.85
Benchmark.parallelTest: [105 ラウンド中 100 ラウンドを測定、スレッド: 1 (順次)]
round: 0.06 [+- 0.02]、round.block: 0.00 [+- 0.00]、round.gc: 0.00 [+- 0.00]、GC.calls: 32、GC.time: 0.79、time.total: 6.82、時間.ウォームアップ: 0.39、タイム.ベンチ: 6.43
したがって、最初の結果は、間違ったマイクロベンチマーク構成が原因だったようです...