Вопрос по java, memory, multithreading – сколько памяти занимает поток в Java [закрыто]

11

Сколько места в памяти занимает нормальный поток в Java. Предполагая, что нет никакого объекта, связанного с этим.

Хороший профилировщик может помочь с этим. Brady

Ваш Ответ

2   ответа
12

выделенный для стека потоков, зависит от вашей версии JVM + операционная система. Он настроен с параметром -XX: ThreadStackSize (-Xss в более старых версиях). Необычно, что 512 КБ является «нормальным», хотя для 64-разрядного Linux это 1024, что, вероятно, является платформой, которую он наиболее критичен (один парень); мнение в любом случае)

Как вы сказали, это ThreadStackSize, который по умолчанию составляет 512 КБ (для 32-битного), зарезервирована ли эта память для протектора во время создания или динамически используется, когда вызовы методов вложены? Ranger
Java резервирует максимальный размер виртуальной памяти для кучи, стеков потоков и т. Д. При создании кучи и потоков. Реальная память назначается, когда она используется. В 32-разрядном приложении виртуальная память может исчерпаться довольно быстро, так как в некоторых ОС она может составлять всего 1,5 ГБ. В 64-битных приложениях виртуальная память может быть 48-битной на многих платформах, и вам нужно только беспокоиться о реальной памяти.
Также помните, что в linux есть ограничение на количество пользовательских потоков, не зависящее от ограничений памяти. Java "Out of Memory: не удалось создать собственный поток". & Quot; Не обязательно означает, что проблема была на самом деле нехватка физической памяти.
Это зарезервировано. То, что это означает, также в некоторой степени зависит от платформы, но, по сути, если операционная система не может гарантировать, что она способна предоставить память, исключение OOM произойдет во время создания потока. (возможность предоставления памяти может включать в себя принудительное использование данных приложения в пространстве подкачки.) Это связано с контрактом основной операции malloc. Это также предполагает использование современной JVM с нативными потоками. То, что происходит в переводчике, является делом JVM.
2

ьзуется для хранения адресов возврата, аргументов вызова функции / метода и т. Д.default stack size is 512KB, Вы можете изменить-Xss команда jvm.

java  -Xss128k

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