У меня есть 32-разрядная служба Java с проблемами масштабируемости: при большом количестве пользователей у нас заканчивается память из-за чрезмерного количества потоков. В долгосрочной перспективе я планирую перейти на 64-разрядную версию и уменьшить количество потоков. соотношение на пользователя. В краткосрочной перспективе я хотел бы уменьшить размер стека (-Xss, -XX: ThreadStackSize), чтобы получить больше запаса. Но это рискованно, потому что, если я сделаю его слишком маленьким, я получит StackOverflowErrors.
Как Могу ли я измерить средний и максимальный размер стека для своего приложения, чтобы принять решение об оптимальном значении -Xss? Меня интересуют два возможных подхода:
Обновление : Я знаю долгосрочный правильный способ решения этой проблемы. Сосредоточьтесь на вопросе, который я задал: как мне измерить глубину стека?
Обновление 2 : Я получил хороший ответ на связанный вопрос, в частности, о JProfiler: Может ли JProfiler измерить глубину стека? (я отправил отдельный вопрос в соответствии с рекомендациями сообщества JProfiler)