Вы не называете свою ОС, хотя вполне очевидно, что это ОС * NIX-типа.
Память, которую показывает ps
, является реальной, выделенной памятью.Он будет включать всю «родную», кучу и mmap
редактируемую память, выделенную вашему процессу.Если ваш процесс очень молодой (т. Е. Не выполняется очень долго), он все равно не будет использовать большую часть своей кучи.
Многие операционные системы, особенно Linux, позволят mallocвернуть успех , даже если физическая память фактически не выделена.Поскольку JVM выделяет ваши настройки -Xms
сразу после запуска, вы, вероятно, ожидаете, что объем памяти вашего процесса будет по крайней мере 3072MiB, но если эта память фактически не используется, то ps
вероятно, будет иметь меньший размер, чем вы ожидаете.
Если вы действительно используете Linux, посмотрите https://serverfault.com/questions/48582 и немного поищите в Интернете, как именно ядро Linux распределяет память.Кроме того, если вы используете Linux, рассмотрите возможность добавления тега linux
к вашему вопросу.
Если вы не используете Linux, вы можете прочитать окак ваша ОС распределяет память.Если ваша ОС использует стратегию «overcommit», она будет вести себя так, как описано выше.