数百万の乱数のペアで除算操作を行い、異なるOSを実行している同じマシンで除算操作の平均時間を計算する小さなプログラムをJavaで作成しました。プログラムを実行した後、Windowsの場合、除算操作は平均してかかりますが1.6 * 10^-5 ms
、Linux(Ubuntu 12.04)の場合は、ほぼ8倍少なくなり3.2 * 10^-6 ms
ます。なぜJavaプログラムがWindowsではなくUbuntuではるかに高速に実行されるのかわかりません。ドライバーだけですか?または、Ubuntuで算術演算がより最適化されていますか?
3 に答える
2
実際の計算はプロセッサによって行われ、オペレーティングシステムから完全に独立しています。
さらに、Javaプログラムは仮想Javaマシンで実行されます。
おそらく、Windowsで実行されているスレッドの数が多いため、プログラムのプロセッサ時間が短くなっています。
于 2012-10-01T03:02:29.450 に答える
1
時間自体は非常に小さいので、違いはあなたがそれをしている方法で測定することはできません(そしてそうすべきではありません)。意味のあるデータは、同じハードウェアなどで長時間実行した場合にのみ取得されます。
于 2012-10-01T02:58:46.443 に答える
0
はいDrBAdvanceOSクラス割り当て1。
于 2013-07-25T14:28:46.757 に答える