小さな実装ミスのために、Javaヒープスペースの問題にどれだけ早く到達できるかを発見しました
これでバグは修正されましたが、すべて問題ありませんが、これを解決する方法を検討することができ、次のような複数の解決策を見つけました。
java -Xms5m -Xmx15m MyApp
問題は、これによってコンピュータのJavaメモリが変更されることですが、Webブラウザで使用されるアプレットに取り組んでいます。
したがって、アプレットの実行時にヒープサイズを変更する方法はありますか?
小さな実装ミスのために、Javaヒープスペースの問題にどれだけ早く到達できるかを発見しました
これでバグは修正されましたが、すべて問題ありませんが、これを解決する方法を検討することができ、次のような複数の解決策を見つけました。
java -Xms5m -Xmx15m MyApp
問題は、これによってコンピュータのJavaメモリが変更されることですが、Webブラウザで使用されるアプレットに取り組んでいます。
したがって、アプレットの実行時にヒープサイズを変更する方法はありますか?
アプレットタグにパラメータを追加できます。ただし、関心のあるパラメータはJava6u10以降でのみ使用できます。
例:
<APPLET archive="my_applet.jar" code="MyApplet" width="300" height="300">
<PARAM name="java_arguments" value="-Xmx256m">
</APPLET>
詳細はこちらhttp://www.oracle.com/technetwork/java/javase/plugin2-142482.html#JAVA_ARGUMENTS
AFAIK、ユーザーのみがJREヒープ設定を変更できます。アプレットはこの設定を変更できません。
アップデート:
JDKの最新バージョンでは、これが可能であるようです。見てください:より多くのメモリでJavaアプレットを起動するにはどうすればよいですか?
Update2:
メモリ設定は、アプレットではなく、JNLPアプリに対してのみ設定できます。
コマンドラインで指定されていない場合は、JVM設定から取得する必要があります。したがって、アプレットをWebに展開する場合、アプレットを実行するときにコンピュータにどのようなメモリ設定があるかによって異なります。通常、デフォルトでは60〜90 Mbに設定されているため、その下に保つようにしてください。
アプレットがこれらの設定を変更できる場合の影響を考慮してください...他に何を変更できる可能性がありますか。それは最終的にセキュリティの悪用を要求しているだけであり、Javaは機能よりもセキュリティを目指しています:)
JVMは、アプレットよりずっと前に起動している可能性があります。ヒープサイズを変更するには遅すぎます。それを制御できるJavaWebStartを試して、アプレット/アプリケーション用の新しいJVMを生成します。