Я выполняю Windows XP, и через некоторое время это, кажется, возвращается к реальности вялое. Я подозреваю, что это - тяжелое потребление памяти Firefox, но заметило, что несколько других программ являются 'медленными' для выхода, когда я перезагружаю.
Существует ли способ измерять все потребление памяти процесса со временем? Проводник процесса - то, что я хочу, но для каждого процесса, не только того я открываю свойства для.
На земле Unix я работал ps
снимки неоднократно и взгляд на RSS (и очевидно игнорирующий страницы общей памяти) вычисляют что
Мне требуются приблизительно 8-24 часа истории для каждого процесса, не, что может соответствовать на экране.
Какие-либо идеи?
Некоторое время назад я записал Windows Perfmon: Лучшие Десять Счетчиков в моем старом блоге. Статья является кратким введением в использование Perfmon для определения, где аппаратные узкие места: процессор, память, диск, или сеть (и во вторую очередь, для определения текущих рабочих нагрузок на этих ресурсах). Я не могу подчеркнуть этот шаг достаточно: сначала удостоверьтесь, что Вы знаете, какой аппаратный ресурс злоупотребляется. Затем отправьтесь на охоту пожиратель ресурсов.
После того как Вы определили, какой ресурс злоупотребляется, у Вас есть два варианта: добавьте больше того ресурса (получите более быстрый ЦП, дополнительную память, получите более быстрый диск или NIC)..., или разыщите главных пользователей того ресурса, и или уничтожьте их или предпримите шаги для создания их менее свинскими.
Самый легкий способ разыскать главных пожирателей ресурсов с Проводником Процесса. Обязательно выполните его из учетной записи с Администратором privs. Вот быстрый-и-грязный список вещей искать:
Удачи!
Существует perfmon.msc
и там Монитор Процесса sysInternal, который регистрируется.
Можно хотеть запуститься при помощи Диспетчера задач, который даст Вам маленькую информацию.
Устойчивая альтернатива встроенному Диспетчеру задач (taskmgr.exe
) Проводник Процесса (procexp.exe
). Проводник процесса был создан SysInternals и теперь принадлежит и распределяется Microsoft.
Что касается взятия образцов Вашей обычно здоровой системы равномерно для установления базовых чисел Вы могли создать запланированную задачу, которая использует PowerShell Cmdlet Get-Process
, или пакетный файл, который использовал бы простой DOS tasklist.exe
.
Вы могли использовать PS от sysinternals или PS от cygwin или если Вы знаете разработчика, это тривиально для записи программы, чтобы пробежать каждый процесс и извлечь определенную статистику.
Этот код должен действительно быть на stackoverflow, и повелители могут сказать, почти дает Вам общее представление о том, насколько легкий эта задача может быть:
public static string ListAllApplications()
{
StringBuilder sb = new StringBuilder();
foreach (Process p in Process.GetProcesses("."))
{
try
{
if (p.MainWindowTitle.Length > 0)
{
sb.Append("Window Title:\t" +
p.MainWindowTitle.ToString()
+ Environment.NewLine);
sb.Append("Process Name:\t" +
p.ProcessName.ToString()
+ Environment.NewLine);
sb.Append("Window Handle:\t" +
p.MainWindowHandle.ToString()
+ Environment.NewLine);
sb.Append("Memory Allocation:\t" +
p.PrivateMemorySize64.ToString()
+ Environment.NewLine);
sb.Append(Environment.NewLine);
}
}
catch { }
}
return sb.ToString();
}
У меня есть эта проблема все время. Firefox обычно является моим основным преступником, но иногда я выполняю что-то с утечкой памяти.
Я знаю, что это было сказано прежде, но я повторю его... Проводник процесса на самом деле имеет очень удобную функцию, где можно настроить его для обеспечения нескольких дополнительных столбцов информации. Конкретно дополнительными столбцами, которыми Вы интересуетесь, является "История ЦП" и "Частная История Байтов", я думаю, что это - информация, которую Вы пытаетесь подобрать из системы. Это показывает график прокрутки для каждого процесса.