Как определить процесс “виртуальный размер” (WinXP)?

Просто добавьте номер к JTextField (используя setText(String) и getText()) в функции actionPerformed.

10
задан theller 14 February 2009 в 10:09
поделиться

6 ответов

Согласно MSDN: информация о производительности памяти PROCESS_MEMORY_COUNTERS_EX.PrivateUsage совпадает с Размером VM в Диспетчере задач в Windows XP. GetProcessMemoryInfo должен работать:

PROCESS_MEMORY_COUNTERS_EX pmcx = {};
pmcx.cb = sizeof(pmcx);
GetProcessMemoryInfo(GetCurrentProcess(),
    reinterpret_cast<PROCESS_MEMORY_COUNTERS*>(&pmcx), pmcx.cb);

Теперь pmcx.PrivateUsage содержит Размер VM процесса.

8
ответ дан 4 December 2019 в 01:03
поделиться

В 32 битах адресного пространства WindowsXP разделен на две части на 2 ГБ: одна часть для программы и другой для ядра. Можно увеличить часть приложения до 3 ГБ с помощью переключателя/3GB в файле boot.ini.

0
ответ дан 4 December 2019 в 01:03
поделиться

Можно использовать счетчик производительности. Объект Процесса имеет "Виртуальные Байты" значение.

1
ответ дан 4 December 2019 в 01:03
поделиться

Вы запрашиваете счетчик производительности.
Существует полный API для этого в win32 API, читайте об этом здесь.
Можно посмотреть на все счетчики производительности, если Вы запускаете программу под названием 'perfmon.exe'

1
ответ дан 4 December 2019 в 01:03
поделиться

Вам не нужны счетчики производительности. Просто используйте NAPI (Win32 FAQ)

посмотрите на win32 группе news://nntp.aioe.org/comp.os.ms-windows.programmer.win32 для кода C.

0
ответ дан 4 December 2019 в 01:03
поделиться

Мне нужно было то же, что и theller, но, к сожалению, это было необходимо для другого процесса, кроме моего собственного. Из-за этого самостоятельный ответ пользователя об использовании «MEMORYSTATUSEX.ullTotalVirtual – MEMORYSTATUSEX.ullAvailVirtual» у меня не сработал, поскольку GlobalMemoryStatusEx () (функция, возвращающая MEMORYSTATUXEX) работает только для текущего процесса.

Пока что, Мне не удалось найти именно то, что я искал, без использования счетчиков производительности (я не разбирался в них, потому что они выглядели намного сложнее, чем то, что я искал). Я подошел очень близко, перебирая и используя VirtualQueryEx, чтобы исследовать адресное пространство желаемого процесса, подсчитывая все регионы, которые не выполнялись. t иметь состояние MEM_FREE. В моих тестах оно оказалось на 17 миллионов больше, чем я ожидал при сравнении с Process Explorer. ... кроме того, это определенно не без условий гонки.

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

1
ответ дан 4 December 2019 в 01:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: