2011-08-04 15 views
21

Windows 7(64ビット)およびJavaでの私の経験から、32ビットJREは64ビットJREよりも少ないメモリしか使用せず、大量のメモリを必要とせず、また恩恵を受ける必要もありません)。 Mac OSX(と他のプラットフォーム)でも同じことが当てはまると思います。Mac OSX 10.7 Lionで32ビットJavaを実行する方法

OSX Lion(v10.7)を現在使用しており、標準Javaアプリケーションをインストールしました。 Javaの設定では、 "Apple Inc."の "Java SE 6" CPUタイプ「32ビット」と「64ビット」バージョン「1.6.0_26-b03-383」の両方に対して使用できます。私は、32ビット版をデフォルトにするために、32ビット版を64ビット版の上に置くように優先順位を変更しました。

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

+8

のデフォルトのリンクではなく、エイリアスであり、16ビットバージョンではさらにメモリが少なく、さらに高速です。 –

答えて

21

、 -d32スイッチを使用して32ビットJVMを明示的に起動できることを確認してください。

java version "1.6.0_26" 
Java(TM) SE Runtime Environment (build 1.6.0_26-b03-383-11A511c) 
Java HotSpot(TM) Client VM (build 20.1-b02-383, mixed mode) 

、それはそう言いませんが、それは32ビットのJVMである:私のマシン上で

、 "Javaの-versionの-d32は" と言います。 /System/Library/Frameworks/JavaVM.framework/Versions で

+0

+1は完全に機能しました。私はJavaアプリケーションを走らせ、アクティビティ・モニターで「インテル(64ビット)」ではなく「インテル」と表示されました。なんらかの理由で 'arch'コマンドはjavaに何の影響も与えません。 – Kelvin

7

Java 64ビットの最新バージョンには、デフォルトで-XX:+ UseCompressedOopsがオンになっています(ヒープが32 GB未満の場合)。これはどんな場合でも32ビットの参照が使用されることを意味します。オブジェクトがこの記事では、パフォーマンスの面でUseCompressedOops Java: How much memory do different arrays and collections consume

32ビット、64ビットを比較

依然としてわずかに大きくしている(4バイト以上のオーバーヘッド)、Iは、に応じて、それは5~10%であることが分かりました何をしているの。多くのlong値を使用している場合は、64ビットを使用する方が高速になります。

+0

これはやや便利な情報ですが、どうすれば32ビットJVMを起動できますか?参照されている記事は、32ビットと64ビットのJVMを比較しています(おそらく異なるプラットフォーム上にあります)。 – Ulrik

+0

UNIXでは、私はシェルを開き、完全なパス名を使って私が望むプログラムを実行します(どのプログラムでも動作します)。あるいは、デフォルトのPATHをWindowsやUnixに 'bin'ディレクトリを含めて32ビット版を使うように変更します。(Javaには何もない) –

+1

WindowsやUNIXではこれは自明です。 knowは、Javaバイナリを検索し、おそらく適切なJAVA_HOME環境変数を設定するためのJREのインストール場所です。 Macでは、Javaのインストールはあまり目立たず、私は32ビットインストールを見つけることができませんでした。しかし、Java Preferences GUIに表示されている情報は、32ビットバージョンが何とか...どこかに存在することを意味すると思います。 – Ulrik

1

「Java Preferences」アプリケーションに移動し、java 32ビットをリストの先頭にドラッグします。

+0

私が説明したように、これは私がすでに試みたものです。 – Ulrik

+0

それは私のために働いた。 – serega

1

以下の手順に試してみてください。

  1. 開き、ターミナルをして/System/Library/Frameworks/JavaVM.framework/Versions/
  2. を入力し、利用可能なすべてのJavaバージョンを表示するには、-lタイプLSに行きますsudoのLN -fhsv CurrentJDK

参考:私は今、分かったChanging Java Version

1

私はバージョン1.6がインストールされたJavaのパスを変更した、javacは /System/Library/Frameworks/JavaVM.framework/Versions/1.6/を指すようにhomeを使用している環境 /usr/bin/

関連する問題