Java все еще использует системную память после освобождения объектов и сборки "мусора"

execvp принимает массив указателей. Вы даете ему 2D-массив. Это совершенно разные звери. Для начала массив указателей, задаваемых execvp, должен быть NULL -определенным. С 2D-массивом это невозможно.

9
задан Jake 27 November 2008 в 19:11
поделиться

4 ответа

Много JVMs никогда не возвращают память операционной системе. Делает ли это так или не является определенным для реализации. Для тех, которые не делают, пределы памяти, указанные при запуске, обычно через флаг-Xmx, являются основными средствами, чтобы зарезервировать память для других приложений.

Мне нелегко находить документацию относительно этого предмета, но документация сборщика "мусора" для Java 5 Sun действительно обращается к этому, предполагая, что при правильных условиях, "куча" уменьшится, если корректный коллектор будет использоваться — по умолчанию, если больше, что 70% "кучи" свободны, она уменьшится так, чтобы только 40% были свободны. Параметры командной строки для управления ими -XX:MinHeapFreeRatio и -XX:MaxHeapFreeRatio.

19
ответ дан 4 December 2019 в 08:02
поделиться

Существует несколько параметров командной строки для JVM, которые помогают настроить размер "кучи", используемой Java. Все знают (или должен знать) о-Xms и-Xmx, которые устанавливают минимум и максимальный размер "кучи".

Но существует также-XX:MinHeapFreeRatio и-XX:MaxHeapFreeRatio, которые являются соответствующими пределами, между которыми JVM управляет свободным пространством. Это делает это путем уменьшения используемой "кучи", и это может понизить потребление памяти программы.

Можно найти больше информации здесь:

5
ответ дан 4 December 2019 в 08:02
поделиться

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

JVM только не отказывается освободить память "кучи", которую она выделила, но имеет тенденцию проглатывать пространство по разным причинам, включая своевременную компиляцию.

3
ответ дан 4 December 2019 в 08:02
поделиться

ОС, возможно, показывающая память, которая в настоящее время выделяется программе - Даже при том, что 150 ~ МБ выделяются, это не означает, что 150 ~ МБ используются.

0
ответ дан 4 December 2019 в 08:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: