Как получить использование памяти запущенным процессом


Я пытаюсь получить использование памяти процессом, запущенным с помощью Java.
Может ли кто-нибудь дать мне подсказку, как это сделать, например Notepad.exe?

    // Memoryusage of the Java programm
    Runtime runtime=Runtime.getRuntime();
    total = runtime.totalMemory();
    System.out.println("System Memory: " + total);

    ProcessBuilder builder = new ProcessBuilder("notepad.exe");
    Process p = builder.start();

Спасибо за вашу помощь!


person user1193134    schedule 26.04.2013    source источник


Ответы (3)


в этом сообщении есть ваш ответ память Java ProcessBuilder

цитируя главный ответ:

Новый процесс запускается вне Java-процесса, который его запустил. Выделение памяти новому процессу управляется операционной системой как часть управления процессом. Класс Java ProcessBuilder, предоставляющий интерфейс для запуска нового процесса и взаимодействия с ним, выполняется внутри процесса Java.

person Philipp Sander    schedule 26.04.2013
comment
Итак, нет другого способа, кроме запуска другого процесса (также вне java), чтобы получить использование памяти? - person user1193134; 26.04.2013
comment
не с джавой. вы можете попробовать решить проблему с помощью c oder c++ - person Philipp Sander; 26.04.2013

Вы можете запустить системную команду и вывести ее вывод в файл. Затем проанализируйте этот файл, чтобы найти использование памяти.

person P. Lalonde    schedule 26.04.2013

Этот вопрос здесь включает

   ProcessBuilder pb = new ProcessBuilder("cmd.exe",  "/C", "tasklist /fi \"IMAGENAME eq notepad.exe\" /NH");

решил мою проблему.

person user1193134    schedule 26.04.2013