入力配列のサイズを変更しながら、タイマーを使用して実行時間を測定するアルゴリズムの複雑さを測定しようとしています。
現時点で私が持っているコードはかなり単純です:
public void start() {
start = System.nanoTime();
}
public long stop() {
long time = System.nanoTime() - start;
start = 0;
return time;
}
配列のサイズが非常に大きくなるまでは問題なく動作するように見え、O(n) の複雑さのアルゴリズムであると予想されるものは、O(n^2) のように見えます。これは、CPU のスレッド化が原因であると考えられます。n の値が大きいと、実行中に他のプロセスがより多くの時間を割り込んでいます。
基本的に、アルゴリズムを呼び出してからの経過時間ではなく、プロセスが実行されている時間を測定したいと考えています。Javaでこれを行う簡単な方法はありますか?