Где найти значение XSS по умолчанию для Sun/Oracle JVM?

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

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

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

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

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

Ответ 1

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

java -XX:+PrintFlagsFinal -version | grep ThreadStackSize

Ответ 2

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

У вас может возникнуть проблема с размером стека по умолчанию для потоков. В Java SE 6 значение по умолчанию для Sparc равно 512k в 32-разрядной виртуальной машине и 1024k в 64-разрядной виртуальной машине. На x86 Solaris/Linux это 320 тыс. В 32-битной VM и 1024k в 64-разрядной VM.

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

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

java -server -Xss64k

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

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

Ответ 3

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

Ответ 4

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

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

поиск кода Google (изменить: эта служба была отключена, так как этот ответ был сделан, к сожалению) UPDATE: здесь новая ссылка от Nebelmann: Источник Openjdk: globals_windows_x86.hpp

Не уверен, что это помогает, но его запуск

Ответ 5

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

Xss <size> для потоков Java 32 бит:

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