1

Java の特定のメソッドによるオーバーヘッドを確認しようとしています。メソッドが "Send(Message)" だとすると、"log(timestamp); Send(Message); log(timestamp)" になり、タイムスタンプの違いを見つけます。問題は、メソッドが非常に高速であることです (予想される差はナノ秒単位です)。タイムスタンプをログに記録するのにかかる時間も測定したくありません (無視できる場合を除きます)。タイムスタンプを効率的に記録する方法をお勧めできますか?

4

2 に答える 2

2

これを行う最善の方法は、メソッド呼び出しの前に時間をログに記録し、メソッドを数千回または数百万回呼び出して、終了時間をログに記録することです。簡単な割り算を行うと、1 回の通話の合計時間がわかります (これは非常に小さいものです)。

JIT のため、本番環境で実行するのと同じ方法でメソッドをテストするようにしてください。そうしないと、実際の結果とテストの結果が異なる可能性があります。さらに、時間テストを開始する前にメソッドを数千回実行して、完全に最適化されたコードを実際に実行していることを確認することもできます。

于 2013-06-20T14:01:53.573 に答える