私は単純な Java プログラムを持っており、一連の操作間の時間差を知りたいと思っています。この質問では詳細は重要ではありませんが、次のシナリオを考えてみましょう。
long beginTime = System.currentTimeMillis();
//Some operations. Let us asssume some database operations etc. which are time consuming.
//
long endTime = System.currentTimeMillis();
long difference = endTime - beginTime;
コードがマシン上で実行されたとき、違いはどの程度信頼できるでしょうか?
プロセッサが私のコードからいくつかの命令の実行を開始し、別のプロセスにコンテキストを与え、それがしばらく実行された後、この Java プロセスに関連する命令を実行するために戻ってくるとします。
したがって、時間差はマシンの現在の状態、つまり実行中のプロセスの数などに依存するはずです。では、一部の操作の実行にかかるプロファイリング時間において、このメカニズムは信頼できないのでしょうか?