где найти значение XSS по умолчанию для Sun / Oracle JVM? - PullRequest
56 голосов
/ 16 мая 2011

Кто-нибудь когда-нибудь находил один документ JVM, перечисляющий default XSS sizes для различных версий Sun / Oracle JVM и для разных ОС?

Мне удалось найти эту таблицу в jrockit jdk 5.0 docs , но это не полезно для тех, кто использует "обычную" Sun / Oracle JVM.

Я ценю, что значение XSS будет варьироваться в зависимости от ОС (и версии JVM), поэтомувозможно, нет ни одного документа, в котором перечислены все последние комбинации.Но если кто-либо из читателей здесь знает о каких-либо отдельных документах, в которых указано хотя бы только значение XSS по умолчанию для каждой версии JVM (или, по меньшей мере, 1,6 и 1,5), или даже если только для некоторые ОС, это было бы отличным началом.

Я добавлю, что причина того, что это ценно, состоит в том, что часто мы видим, что люди рекомендуют (ошибочно, я думаю), что кто-то может решить проблему, изменив XSSзначение.Но если вы не знаете значения по умолчанию, то нет никакого способа узнать, повышаете или понижаете это значение в зависимости от изменений, которые кто-либо рекомендует.Они обычно не указывают версию / OS они на, так что это crapshoot будет ли их предложение «помогать».

1017 * Даже лучше, чем некоторые документы, если кто-нибудь знает способ для запроса JVM вполучить текущее значение, будь то из командной строки или через вызов API, это было бы еще более ценно.Благодаря.

Ответы [ 5 ]

70 голосов
/ 05 декабря 2014

попробовать:

java -XX:+PrintFlagsFinal -version | grep ThreadStackSize
22 голосов
/ 11 декабря 2013

Эта информация теперь появляется в FAQ по горячей точке Oracle http://www.oracle.com/technetwork/java/hotspotfaq-138619.html#threads_oom

Возможно, у вас возникла проблема с размером стека по умолчанию для потоков.В Java SE 6 значение по умолчанию для Sparc составляет 512 КБ в 32-разрядной ВМ и 1024 КБ в 64-разрядной ВМ.В x86 Solaris / Linux это 320 КБ в 32-разрядной ВМ и 1024 КБ в 64-разрядной ВМ.

В Windows размер стека потока по умолчанию считывается из двоичного файла (java.exe).Начиная с Java SE 6 это значение составляет 320 КБ в 32-разрядной ВМ и 1024 КБ в 64-разрядной ВМ.

Размер стека можно уменьшить, запустив параметр -Xss.Например:

java -server -Xss64k

Обратите внимание, что в некоторых версиях Windows ОС может округлять размеры стеков потоков, используя очень грубую гранулярность.Если запрошенный размер меньше размера по умолчанию на 1 КБ или более, размер стека округляется до значения по умолчанию;в противном случае размер стека округляется до значения, кратного 1 МБ.

64k - это наименьшее количество стекового пространства, допустимого для потока.

5 голосов
/ 18 июня 2013

Вы можете найти его на сайте Oracle в опции "-XX: ThreadStackSize", что означает то же самое, что и -Xss.

3 голосов
/ 25 мая 2011

Для точки доступа это зависит от вашей архитектуры, а что нет.

Размер стека по умолчанию можно найти в исходном коде в заголовочных файлах, которые относятся к данной платформе, например,

Поиск кода Google (редактировать: этот сервис был деактивирован с момента получения этого ответа, к сожалению) ОБНОВЛЕНИЕ: вот новая ссылка от Небельмана: Openjdk источник: globals_windows_x86.hpp

Не уверен, поможет ли это, но это начало

2 голосов
/ 29 августа 2012

В руководстве пользователя IBM Java 6 доступны настройки по умолчанию ( источник ):

Xss для потоков Java 32 бита:

AIX®: 256KB
IBM®I: 256KB
Linux: 256KB
Windows: 256KB
z/OS®: 256KB
...