web-dev-qa-db-ja.com

Mac OSX 10.7 Lionで32ビットJavaを実行する方法

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ビットバージョン間の速度とメモリ効率に関する経験/比較測定はありますか?

21
Ulrik

Java 64-bitの最新バージョンでは、デフォルトで-XX:+ UseCompressedOopsがオンになっています(ヒープが32 GB未満の場合)。これは、いずれの場合でも32ビット参照が使用されることを意味します。オブジェクトはまだわずかに大きくなっています(オーバーヘッドが4バイト多くなります)

この記事では、32ビットと64ビットをUseCompressedOopsと比較します Java:異なる配列とコレクションが消費するメモリ量

パフォーマンスに関しては、あなたが何をしているのかにもよりますが、5〜10%であることがわかりました。多数のlong値を使用している場合、64ビットを使用する方が高速です。

7
Peter Lawrey

「Java Preferences」アプリに移動して、Java 32ビットをリストの上部にドラッグします。

1
Zanson

/System/Library/Frameworks/JavaVM.framework/Versionsにバージョン1.6がインストールされていることを確認し、Java、javacのパスを変更して、環境エイリアスではなく環境エイリアスを使用して/System/Library/Frameworks/JavaVM.framework/Versions/1.6/homeを指すようにしました/ usr/bin /にあるデフォルトのリンク

1
user3076647