5

私たちはJavaで書かれたswingアプリケーションを開発していますが、これは約128MBのメモリしか必要としません.近い将来、4GBのように多くのメモリを必要とすることはないと思います. 以前は、32 ビット Windows 用、32 ビット Linux 用、64 ビット Linux 用の 3 つの異なるリリースを常に提供しており、JRE を含むインストーラーが含まれていました。64 ビット バージョンは数週間前まで誰も使用しておらず、アプリケーションが 32 ビット バージョンよりも約 40 ~ 50% 多くのメモリを消費するため、OutOfMemoryException が報告されました。

私の質問は、アプリケーションが 4 GB を超えるメモリを使用する必要がない場合、64 ビット Linux に 64 ビット バージョンを提供する必要があるのでしょうか? 簡単なテストを行ったところ、32 ビット バージョンが 64 ビット Linux でも動作することがわかりました。しかし、パフォーマンスや互換性の問題など、どのような短所があるのか​​ わかりません。

4

4 に答える 4

3

アプリケーションが 64 ビットのホスト オペレーティング システムに対して改善を提供せず、32 ビット リリースと互換性がある場合、すぐに提供する必要はないと思います。

ただし、すべてではないにしても、ほとんどの新しいシステムは x64 アーキテクチャに基づいており、64 ビット ソフトウェアも当然のデフォルトであるべきだと私は主張しています。このニーズは、ハードウェア レベルに近づくほど強くなります。一部の 32 ビット VPN クライアントをサポートするためだけに仮想オペレーティング システムを実行することがいかに厄介であるかはわかりません。

64 ビット クライアントを推奨すると、ダウンロード統計に影響を与える可能性があります。

于 2011-03-03T09:13:31.843 に答える
2

ほとんどの 32 ビット JVM は、約 1.2 ~ 1.5 GB に制限されています。

アプリケーションが 64 ビット JVM でより多くのメモリを使用している場合-XX:+UseCompressedOopsは、64 ビット JVM に 32 ビット参照を使用するように指示するが、32 GB のメモリにアクセスできる を試してください。

于 2011-03-03T09:21:39.723 に答える
2

この64ビットJavaをチェックしてください

于 2011-03-03T09:21:18.443 に答える
2

私の質問は、アプリケーションが 4 GB を超えるメモリを使用する必要がない場合、64 ビット Linux に 64 ビット バージョンを提供する必要があるのでしょうか?

アプリケーションがそれほど多くのメモリを必要としない場合、64 ビット インストーラー / JVM は何の価値もありません。それどころか、(ご指摘のとおり) 単純にメモリを多く使用し、結果として (おそらく) 実行速度が遅くなるため、これは不適切なオプションです。

(実際には、実際の制限は 4GB 未満になります。ハードウェア アーキテクチャの問題により、32 ビット アドレス空間の一部が使用できなくなります。)

64 ビット バージョンを撤回することをお勧めしますが、ユーザーが個別にダウンロードしてインストールした JVM を使用できるようにします。(実際、いずれにしても後者を実行する必要があります。最新の JVM セキュリティ修正を取得するためにアップグレードするときに、JRE の組み込みコピーが見過ごされる傾向があります ...)


更新 (2019) - Java 8 は、Oracle が 32 ビット プラットフォーム用に提供する Java の最後のバージョンです。Java 11 (現在の LTS バージョン) の時点で、Linux、MacOS、SunOS / SPARC、および Windows 用の Oracle バッジ付きディストリビューションは 64 ビットのみです。

私のアドバイスは、できるだけ早く製品を 32 ビットから移行することです。Java の EOL バージョンで製品をサポートしようとして行き詰まることは望ましくありません。

確かに、この Q&Aによると、32 ビットの Java 11 は Azul から入手できます。(Linux 用の Java 11 の 32 ビット「Zulu」リリースに注意しましたが、Windows や MacOS 用ではありません。YMMV.)

于 2011-03-03T09:56:58.923 に答える