Как получить потребление памяти при запуске "exe" - PullRequest
2 голосов
/ 10 августа 2010

Я разрабатываю "Систему онлайн-судейства", например SGU "http://acm.sgu.ru/"

Я хочу получить точное потребление памяти для запуска" .exe "(. C / .cpp-->. exe) с использованием Java.

Процесс: отправить код -> hello.cpp / .c - скомпилировать -> hello.exe - выполнить -> результаты

IХотите узнать, как получить потребление памяти при запуске "hello.exe"

Код:

Runtime rn = Runtime.getRuntime();

Process proc =rn.exec("hello.exe");

Спасибо за помощь.

Ответы [ 2 ]

1 голос
/ 10 августа 2010

Вы не можете сделать это, используя чистую Java.

На компьютере с UNIX / Linux вы должны сконфигурировать свою операционную систему, чтобы включить учет процессов, а затем прочитать информацию, записанную в файле "acct".Согласно прочитанному мною ручному вводу acct(5), в нем регистрируется «среднее» использование памяти, а не максимальное использование памяти.

Система Windows обязательно будет другой.

0 голосов
/ 11 августа 2010

GetProcessMemoryInfo сообщит вам, сколько памяти использует процесс, когда у вас есть открытый дескриптор. У Microsoft даже есть пример для использования функции.

Чтобы получить искомый идентификатор процесса, вам нужно будет перечислить все процессы в системе. У Microsoft есть пример , который тоже был бы полезен для этого.

Edit: Все примеры написаны на C. Это язык, для которого был разработан Win32 API. Из Java вам нужно будет либо перевести его в JNI, либо найти пакет Java, который выполняет те же действия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...