Апплет: пространство кучи Java

Из-за небольшой ошибки в реализации я обнаружил, как быстро я могу достичь проблемы с кучей Java

теперь ошибка исправлена, все в порядке, но это заставило меня задуматься, как решить эту проблему, и я нашел несколько решений, таких как

java -Xms5m -Xmx15m MyApp

проблема в том, что это изменяет память Java на моем компьютере, но я работаю над апплетом, который будет использоваться в веб-браузере.

Следовательно, есть ли способ, в RUNTIME в APPLET, изменить размер кучи?

4 ответа

Решение

Вы можете добавить параметры в тег апплета. Но интересующий вас параметр доступен только на Java6 u10 или более поздней версии.

Пример:

<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

AFAIK, только пользователь может изменять настройки кучи JRE. Апплет не может изменить эти настройки.

Обновить:

Похоже, что в последних версиях JDK это возможно. Посмотрите на: Как я могу запустить апплет Java с большим объемом памяти?

Update2:

Настройки памяти могут быть установлены только для приложений JNLP, но не для апплетов.

JVM может начаться задолго до вашего апплета. Сейчас уже слишком поздно менять размер кучи. Попробуйте Java Web Start, где вы можете это контролировать, создав новую JVM для вашего апплета / приложения.

Если он не указан в командной строке, вы должны получить его из настроек JVM. Поэтому при развертывании апплета в Интернете он будет зависеть от того, какие настройки памяти они установили на своем компьютере при запуске. Как правило, он установлен на 60-90 Мб по умолчанию, поэтому старайтесь держать его под этим.

Рассмотрим последствия, если апплет может изменить эти настройки... что еще он может изменить. В конце концов, это просто вопрос об использовании безопасности, и Java стремится обеспечить безопасность, прежде чем функциональность:)

Другие вопросы по тегам