Код: Выделить всё
-XssКакой из них предпочтительнее? Есть ли между ними разница? Что касается Open JDK 7, кто-то спросил в списке рассылки, заявив, что -Xss для виртуальной машины Hotpot аналогичен -XX:ThreadStackSize.
Дело в том, что я измеряю, сколько потоков можно запустить в моей системе.
Мой отличный скрипт, который это делает, выглядит так:
Код: Выделить всё
int count = 0
def printCountThreads = {
println("XXX There were started $count threads.")
}
try {
while(true){
new Thread({Thread.sleep(Integer.MAX_VALUE)}).start()
count++
if(count % 1000 == 0){
printCountThreads()
}
}
} catch (Throwable e){
printCountThreads()
throw e
}
Код: Выделить всё
XX:ThreadStackSize. Я запускаю отличное приложение с различным содержимым в переменной среды JAVA_OPTS.
groovy countmax-threads.groovy
Я использую
версию Java "1.8.0_05"
Среда выполнения Java(TM) SE (сборка 1.8.0_05-b13)
64-разрядная серверная виртуальная машина Java HotSpot(TM) (сборка 25.5-b02, смешанный режим)
на 64-разрядной машине Ubuntu 14.04 с четырьмя аппаратными потоками и примерно 8 ГБ оперативной памяти.
ОБНОВЛЕНИЕ:
Я еще раз проверил это на своем 64-разрядном компьютере с Windows 7 и другом JDK:
< цитата>
Java-версия "1.8.0_20"
Среда выполнения Java(TM) SE (сборка 1.8.0_20-b26)
64-разрядная серверная виртуальная машина Java HotSpot(TM) (сборка 25.20-b23, смешанный режим)
и там -Xss и -XX:ThreadStackSize работают как ожидаемо (как указано в некоторых ответах). Поэтому я предполагаю, что это проблема, специфичная для Linux, или даже ошибка в JDK версии 1.8.05.
Подробнее здесь: https://stackoverflow.com/questions/287 ... dstacksize
Мобильная версия