2008-09-16 7 views
131

Я подозреваю, что одно из моих приложений потребляет больше циклов процессора, чем я хочу. Проблема в том, что это происходит во всплесках, и просто просмотр диспетчера задач не помогает мне, поскольку он показывает только немедленное использование.Отслеживание использования процессора и памяти в процессе

Есть ли способ (в Windows) отслеживать историю CPU & Использование памяти для некоторого процесса. Например. Я начну отслеживать «firefox», и через час или около того он увидит график использования своего CPU & в течение этого часа.

Я ищу либо готовый инструмент, либо программный способ достижения этого.

ответ

142

Просто введите perfmon в Start > Run и нажмите enter. Когда окно «Производительность» открыто, щелкните знак «+», чтобы добавить новые счетчики в график. Счетчики - это разные аспекты работы вашего ПК и сгруппированы по сходству в группы под названием «Объект производительности».

По всем вопросам вы можете выбрать объекты производительности «Процесс», «Память» и «Процессор». Вы можете увидеть эти счетчики в реальном времени

Вы также можете указать утилиту для сохранения данных о производительности для вашего осмотра позже. Для этого в левой панели выберите «Журналы производительности и оповещения». (Это правильно под консолью System Monitor, которая предоставляет нам вышеупомянутые счетчики. Если ее нет, нажмите «Файл»> «Добавить/удалить оснастку», нажмите «Добавить» и выберите «Журналы и предупреждения о производительности» в списке «.) Из« Журналов и предупреждений о производительности »создайте новую конфигурацию мониторинга в разделе« Журналы счетчиков ». Затем вы можете добавить счетчики, указать частоту дискретизации, формат журнала (двоичный или обычный текст) и местоположение журнала.

1

Хм, я вижу, что Process Explorer может это сделать, хотя его графики не слишком удобны. Все еще ищут альтернативные/лучшие способы сделать это.

2

Perfmon.exe встроен в окна.

38

Process Explorer может отображать общее время процессора, затраченное на процесс, а также график истории для каждого процесса.

+0

Итак, как бы вы использовали его для поиска процесса, который случайным образом начинает использовать больше памяти или мощности процессора в короткой вспышке. Не могли бы вы уточнить? – Xitcod13 2012-12-18 10:21:06

+0

Щелкните правой кнопкой мыши на заголовках столбцов, выберите «Выбрать столбцы», затем отметьте «История CPU» в разделе «Производительность процесса» – Laurent 2014-02-02 08:25:06

+0

вы можете сбросить его до нуля? – 2016-09-13 22:58:14

7

Я согласен, perfmon.exe позволяет добавлять счетчики (щелкните правой кнопкой мыши на правой панели) для любого процесса, который вы хотите контролировать.

Объект производительности: процесс Установите флажок «Выбрать экземпляры из списка» и выберите Firefox.

+0

Спасибо. Как просмотреть историю использования процессора за заданное время, например, час? – 2008-09-16 04:56:26

5

WMI - это инструмент управления Windows, и он встроен во все последние версии Windows. Это позволяет вам программно отслеживать такие вещи, как использование ЦП, дисковый ввод-вывод и использование памяти.

Perfmon.exe является интерфейсом графического интерфейса пользователя к этому интерфейсу и может отслеживать процесс, записывать информацию в журнал и позволять анализировать журнал после факта. Это не самая элегантная программа в мире, но она выполняет свою работу.

2

Процесс Lasso разработан больше для автоматизации процессов и оптимизации класса приоритетов, а не для графиков. При этом делает предлагает историю использования процессора для каждого процесса (нарисована как белая линия на графике), но она NOT предложение per -процессная история использования памяти.

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я являюсь автором процесса Lasso, но на самом деле не одобряю его здесь, поскольку есть лучшие решения (лучший из лучших).

Лучшее, что когда-либо было в Windows Vista + Resource and Performance Monitor. Он может отслеживать использование процессов CPU, Memory, Network и Disk процессами со временем. Это отличная общая системная информационная утилита, которая должна была быть создана давно. Если я не ошибаюсь, он может отслеживать использование процессора и памяти во всех процессах (в том числе перечисленные другие).

14

Используя perfmon.exe, я попытался использовать счетчик «Private Bytes» под счетчиками «Process» для отслеживания использования памяти, и он работает хорошо.

6

Возможно, вы можете использовать это. Он должен работать для вас и будет сообщать процессорное время для указанного процесса.

@echo off 
: Rich Kreider <[email protected]> 
: report processor time for given process until process exits (could be expanded to use a PID to be more 
: precise) 
: Depends: typeperf 
: Usage: foo.cmd <processname> 

set process=%~1 
echo Press CTRL-C To Stop... 
:begin 
for /f "tokens=2 delims=," %%c in ('typeperf "\Process(%process%)\%% Processor Time" -si 1 -sc 1 ^| find /V "\\"') do (
if %%~c==-1 (
goto :end 
) else (
echo %%~c%% 
goto begin 
) 
) 

:end 
echo Process seems to have terminated. 
1

Хотя я не пробовал это, ProcDump кажется лучшим решением.

Описание с сайта:

ProcDump это утилита командной строки, основной целью которой является мониторинг приложения для шипов процессора и генерации аварийного дампа во время всплеска, что администратор или разработчик может использовать, чтобы определить причину всплеска , ProcDump также включает в себя проверенный контроль окна (с использованием того же определения окна, что и Windows и диспетчер задач), необработанный мониторинг исключений и может генерировать дампы на основе значений счетчиков производительности системы. Он также может служить общей утилитой дампа процесса, которую вы можете встроить в другие скрипты.

0

Я использую taskinfo для диаграммы истории скорости CPU/RAM/IO. http://www.iarsn.com/taskinfo.html

Но всплески невосприимчивости звучат скорее как время прерывания из-за неудачного HD/SS-привода.

Смежные вопросы