2010-07-17 4 views
2

У меня есть приложение Java, которое имеет максимальную кучу 1024 М, у него есть perm gen пространство 256M. Гарантирует ли это, что это приложение никогда не будет использовать более 1280M (1024 + 256)?Как вычислить максимальную память, которая может быть использована приложением java

Имеет ли память стека из размера кучи выше или это дополнительное потребление памяти?

Что делать, если приложение java использует собственный код, который потребляет память, откуда происходит эта память? heap/perm gen/more ram?

Мне интересно узнать, как Java использует память. прокомментировать. Любые ссылки, которые могут обеспечить четкую картину также приветствуем

Thankyou

ответ

2

Выполнение Java-приложения использует больше памяти, чем основная куча и пространство перментонов. Например:

  • Существует память, которая содержит исполняемый код программы java и любые совместно используемые библиотеки, которые динамически связаны с исполняемым файлом.
  • Существует память, используемая для представления структур данных, буферов и т. Д., Созданных исполняемым файлом java, его родными библиотеками или родными библиотеками приложения.
  • Существует память, используемая для представления стеков потоков Java.
  • И, возможно, больше.

Нет рекомендуемого способа предсказать общее использование памяти приложения Java. Даже измерение это сложно, особенно если учесть, что часть этой памяти может быть передана другим JVM или даже другим приложениям, отличным от Java.

Смежные вопросы