The amount of memory процесс занимает в Java зависит от:
- объектов
- Классы
- Тем
- Native структуры данных
- Машинный код
потребление памяти, связанные с каждым пунктом меняется приложений, среды исполнения и платформ. Итак, как вы вычисляете общую память? Ну, на самом деле не так просто получить точный номер, потому что у вас мало контроля над родной частью. Единственными частями, которые вы можете реально контролировать, является количество кучи -Xmx, память, потребляемая классами -XX: MaxPermSize и стек стека -Xss, который контролирует объем памяти, потребляемой каждым потоком. Будьте осторожны при настройке размера стека, поскольку слишком низкий размер вызовет исключения StackOverflow, и ваше приложение будет работать неправильно. Таким образом, формула такова:
(-Xmx) + (-XX:MaxPermSize) + numberofthreads * (-Xss) + Other mem
Таким образом, количество памяти, которую занимает процесс, будет увеличиваться по мере увеличения количества потоков. Ваш вопрос, похоже, не о ThreadLocals, скорее о потоке в целом.
Несет. Когда потоки завершаются, объекты исчезают. – tbodt
... Конечно, больше объектов означает больше памяти; это самоочевидно. –
Этот вопрос не соответствует теме, потому что он просто запрашивает подтверждение. –