Как определить максимальный размер стека? - PullRequest
7 голосов
/ 20 сентября 2011

Я хочу определить максимальный размер стека программно из Java (размер, установленный -Xss).Как мне это сделать?

В качестве альтернативы, поскольку мой модуль Java также использует модуль собственного кода, я мог бы сделать это через JNI;но как?

Ответы [ 2 ]

4 голосов
/ 20 сентября 2011

Используйте ManagementFactory.getRuntimeMXBean().getInputArguments() для доступа ко всем аргументам, переданным ВМ.

0 голосов
/ 22 марта 2017

Возможно, это не лучшая практика, но, безусловно, прямолинейно: я бы написал рекурсивный метод подсчета значения, повторяющегося до java.lang.StackOverflowError, и посмотрел бы на счетчик.

public class Test
{

static void recur(AtomicInteger start)
{
    start.incrementAndGet();
    recur(start);
}

public static void main(String[] args) throws ParseException
{
    AtomicInteger start=new AtomicInteger(0);
    try
    {
        recur(start);
    }
    catch (java.lang.StackOverflowError e)
    {
        /**/
    }
    System.out.println(start);

}
}
...