2012-02-05 11 views
1

Windows 7とLinux(Debian)の両方で、Javaコードを実行しました(スキーマのxmlファイルの解析と検証に要する時間の測定)。今のように、Linuxプラットフォームでの時間は、Windowsプラットフォームに比べて非常に少なくなければなりません。しかし、両方の場合に記録されたユーザ時間は同じです。LinuxとWindows間のJavaプログラムの性能比較

私は両方のプラットフォームでシンプルなベンチマークJavaプログラム(2回のネストループを約900000回実行していました)を実行したため、修正されました。また、Linuxプラットフォームでのユーザーの時間は、Windowsの約60倍です。

私は、Javaプログラムでthaiopensource APIを使用していることにも言及しなければなりません。 (jing/trangプロジェクト)。私のシステムは32ビットLinux(Debian)(Javaも32ビット)を使用し、3 GBのRAMを持っています。 Linuxでは、IcedTea Virtual MachineでopenJDK 1.5を使用しています。 Windows上の私のIDEはEclipse Heliosです。

これを回避する方法がある場合は、Linuxで解析と検証プログラムを実行するためにかかる時間が短くて済むようにすることをお勧めします。 Windows。そうではありません。親切に方法を提案します。ありがとうございました。

+0

両方のOSが同じビット(32ビットvs. 64ビット)ですか? – Michael

答えて

7

公正な比較のために、テスト間のバリエーションを最小限に抑える必要があります。すなわち、同じバージョンのJavaを使用する必要があります(理想的には最新のものまたは少なくとも現在のものが理想的です)。システムコールを作成していない場合、使用されるOSに違いはありません。

-serverオプションの両方のマシンで最新バージョンのJava 7を使用することをお勧めします。 (Windows 32ビットは、デフォルトでは異なるクライアントJVMになります)

私はあなたのテストを意味のある比較ができるように少なくとも10秒間実行します。

ところで、特別な理由はありませんが、Linuxは同じハードウェアを使用している方が高速です。

1

このようなマイクロベンチマークテストを書くことは、最初は思うかもしれません。スタートのために

、私はIBMの開発者で 堅牢なJavaのベンチマークシリーズを読んで推薦作品:

  • はあなたが避けたいsome issuesの説明を参照してください、そして
  • あなたが使用できるいくつかのstatistical solutions何らかの情報を抽出します(結果を結論づけるのは必ずしも明確ではありません。詳細はリンク先の記事を参照してください)。

詳細については、Brent Boyer's siteを参照してください(また、ベンチマークに使用できるライブラリをダウンロードしてください)。

+0

Javaマイクロベンチマーキングツールの1つである、オープンソースのCaliper(caliper.googlecode.com)。あなたはそれを適用することもできます。 –

関連する問題