В нем говорится here, что -Xss используется для "установки размера стека потока", что это значит? Может ли кто-нибудь помочь мне понять это?
Вариант JVM -Xss - Что он делает точно?
Ответ 1
Каждый поток в приложении Java имеет свой собственный stack. Стек используется для хранения адресов возврата, аргументов вызова функции/метода и т.д. Поэтому, если поток имеет тенденцию обрабатывать большие структуры с помощью рекурсивных алгоритмов, для этого может потребоваться большой стек для всех возвращаемых адресов и т.д. С помощью Sun JVM вы можете установить этот размер с помощью этого параметра.
Ответ 2
Он действительно устанавливает размер стека на JVM.
Вы должны прикоснуться к ней в любой из этих двух ситуаций:
- StackOverflowError (размер стека превышает лимит), увеличьте значение
- OutOfMemoryError: невозможно создать новый собственный поток (слишком много потоков, каждый поток имеет большой стек), уменьшите его.
Последнее обычно приходит, когда ваш Xss установлен слишком большим - тогда вам нужно сбалансировать его (тестирование!)
Ответ 3
Каждый поток имеет стек, который используется для локальных переменных и внутренних значений. Размер стека ограничивает глубину ваших вызовов. Как правило, это не то, что вам нужно изменить.
Ответ 4
Если я не ошибаюсь, это то, что сообщает JVM, сколько последовательных вызовов он примет до выдачи StackOverflowError. Не то, что вы хотите изменить в целом.