Windows 7(64ビット)とJavaでの経験から、32ビットJREは64ビットJREよりも少ないメモリを使用し、実行速度が大幅に向上します(多くのメモリを必要としないか、多くのメモリが必要な場合)。 Mac OSX(および他のプラットフォーム)にも同じことが当てはまると思います。
現在OSX Lion(v10.7)を実行していますが、標準のJavaアプリをインストールしました。Java Preferencesの下に、「Java SE 6」が表示されますCPUタイプ「32ビット」および「64ビット」バージョン「1.6.0_26-b03-383」の両方について「Apple Inc.」から。32ビットバージョンを上に置くために優先順序を変更しました。 64ビットバージョン。これにより32ビットバージョンがデフォルトになることを期待しています。
ただし、「Java -version」には次のように記載されています。
Java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03-383-11A511c)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02-383, mixed mode)
デフォルトで32ビットバージョンを使用することは可能ですか?そしてどうやって?
また、32/64ビットバージョン間の速度とメモリ効率に関する経験/比較測定はありますか?
Java 64-bitの最新バージョンでは、デフォルトで-XX:+ UseCompressedOopsがオンになっています(ヒープが32 GB未満の場合)。これは、いずれの場合でも32ビット参照が使用されることを意味します。オブジェクトはまだわずかに大きくなっています(オーバーヘッドが4バイト多くなります)
この記事では、32ビットと64ビットをUseCompressedOopsと比較します Java:異なる配列とコレクションが消費するメモリ量
パフォーマンスに関しては、あなたが何をしているのかにもよりますが、5〜10%であることがわかりました。多数のlong
値を使用している場合、64ビットを使用する方が高速です。
「Java Preferences」アプリに移動して、Java 32ビットをリストの上部にドラッグします。
/System/Library/Frameworks/JavaVM.framework/Versionsにバージョン1.6がインストールされていることを確認し、Java、javacのパスを変更して、環境エイリアスではなく環境エイリアスを使用して/System/Library/Frameworks/JavaVM.framework/Versions/1.6/homeを指すようにしました/ usr/bin /にあるデフォルトのリンク