ケビンは、アプレットがデスクトップアプリケーションと比べてどのように動作するかの違いがありますが、私には大きな違いがあります。あなたが「アプレット」スタックを「より重くしている」と言われた場合、私はアプレットがスタンドアロンではなく最大の最大メモリを取得することを期待していましたバージョン。
私は、アプレットとアプリケーションの間でいくつか測定しました。どちらも同じパラメータ(-Xmx128M)を受け取りました。どちらも同じJVMで実行されています - Java HotSpot(TM)64ビットサーバVMバージョン11.3-b02(初めてアプレットがクライアントJVMで動作していて、サーバーJVMが、両方がサーバJVMであるようだ)
もちろん現実異なるパラメータで受け取ったのJVMが、主要な何も(と思う):
- アプレット:-D__jvm_launched = 426431678538 -Xbootclasspath/A :/usr/jvm/64/jdk1.6.0_13/jre/lib/deploy.jar:/usr/jvm/64/jdk1.6.0_13/jre/lib/javaws.jar:/ usr/jvm/64/jdk1。 6.0_13/jre/lib/plugin.jar -Xmx128m
- スタンドアロン:-Xrun jdwp:transport = dt_socket、address = 127.0.0.1:54876、suspend = y、server = n -Xmx128M -Dfile.encoding = UTF-8
アプレット:メモリ= 119.314K
- ヒープ
- PSエデンスペース:14,592K
- PSの遺族スペース:14.528K
- PS旧世代:87.424K
- 非ヒープ
- Memのプールコードキャッシュ:49.152K
- MemのプールPSパーマゲン:86.016K
168K
デスクトップ:最大。メモリ= 129.302K
- ヒープ
- PSエデンスペース:8.704K
- PSの遺族スペース:3.008K
- PS旧世代:116.544K
- 非ヒープ
- Memのプールコードキャッシュ:49.152K
- MemのプールPSパーマゲン:65.536K
それら2つのJVMの大きな違い
- PS Perm Genでは、アプレットがより大きなチャンクを持っています。アプレットがスタンドアロンバージョンと比較しておそらく追加のクラスをロードするので意味があります(この場合でも「Old Gen」はずっと小さくなります。
- エデン/サバイバー/オールドジェンの間で全く異なる比率のヒープメモリアプレットの旧世代は、スタンドアロンの旧世代の75%であり、私は、アプレットとして、またはデスクトップアプリケーションとしてアプリケーションを実行しているときに、何の違いもないはずなので、同じメモリモデルを(ほとんど)期待していれば大丈夫です。
私はmaxMemory比率を計算する方法がわからないだけでなく(実際には0.9は将来のJVMバージョンでは有効ではありませんでした)、私のアプリケーションはメモリ不足になる可能性がありますアプレットとして実行されます。安全のためにアプレットとして実行する場合、最大メモリーを〜10-15%増やす必要があります。
(同じマシン上の)異なるヒープ率と小さなヒープ(なぜなら、アプレットには追加のクラスが必要であることを考慮している)をまだ確信していません。
何らかの理由がありますか?私は今、面倒です。アプレットに最大限のメモリがあるかどうかを確認する必要があります。