
Я в шоке, когда нажимаю на приложение в Windows и жду 10 секунд, пока оно ответит. Мне интересно: «Вы можете выполнять 16 миллиардов инструкций в секунду, что вы делаете, что не даете себе реагировать на мой щелчок мыши». Поэтому мне было бы интересно собрать воедино идеи о том, как разработать приложение, которое могло бы диагностировать такие проблемы. Я не эксперт по Windows и мне интересно, какие методы могли бы предложить другие. Вот что я хотел бы в идеале уметь делать:
Распознайте любые приложения, драйверы или состояния операционной системы (например, часто обвиняемый реестр), которые замедляют работу системы, и доведите это до сведения пользователя. Часть этой информации можно получить с помощью счетчиков производительности, в других аспектах я менее уверен. Я бы склонился к использованию методов машинного обучения, чтобы определить, зависла ли система, и помочь определить виновника (что осуществимо, если я смогу как придумать примеры, воссоздающие основные источники проблемы, так и собрать достаточно данных, чтобы определить виновника).
решение1
Попробуйте бесплатный набор инструментов Microsoft SysInternals: множество инструментов для профилирования. Взгляните на:http://technet.microsoft.com/en-us/sysinternals/default.aspx
Обновлять:
Вам также следует учесть, какие антивирусы/программы Internet Security установлены и работают в вашей системе. Они, как мы надеемся, окажут небольшое, но существенное влияние на производительность вашей системы. Вы можете настроить параметры, одним из основных, которые будут иметь значительную активность, является фоновое сканирование. Я использовал AVG, McAfee и Norton, и Norton, по-видимому, обеспечивает наиболее прозрачное представление о том, что он делает, поскольку у него есть собственный диспетчер задач и график использования ресурсов с течением времени. Я не работаю ни с одним из них, но я бы рекомендовал Norton вместо McAfee, поскольку McAfee загадочным образом периодически сильно замедлял мою машину на минуту или около того.
Обновление 2:
Вы сказали:
«Вы можете выполнять 16 миллиардов инструкций в секунду. Что же вы делаете, что мешает вам реагировать на мой щелчок мыши?»
Еще один комментарий. Вычислительную активность можно описать как подразделяющуюся на 2 вида: связанную с вычислениями и связанную с вводом-выводом. Связанная с вычислениями активность заключается в том, что вся или почти вся деятельность заключается в вычислениях, связанная с вводом-выводом активность заключается в том, что вся или почти вся деятельность заключается в доступе к устройствам ввода-вывода, таким как жесткие диски, другие периферийные устройства, такие как сеть. Полезные активности редко бывают одними или другими, поскольку вы не можете делать только ввод-вывод без использования вычислений, чтобы сделать их полезными, а если у вас нет ввода-вывода, то вам нечего вычислять. В вашем случае, похоже, что активности включают компонент ввода-вывода — доступ к жесткому диску, который является самым медленным компонентом.
Обновление 3: Re:McAfee время от времени забирает процессор, похоже, у Norton есть своя версия этого, как я недавно обнаружил, хотя я не вижу этого так часто, как с McAfee. Проблема Norton CPU hog обсуждается здесь:http://community.norton.com/t5/Norton-Internet-Security-Norton/ccsvchst-exe-cpu-usage-Issue/mp/2888"Проблема использования процессора ccsvchst.exe". Поэтому я подумал, что упомяну, чтобы предоставить сбалансированное мнение. Однако я бы все же рекомендовал Norton, поскольку по моему опыту моя версия показывает подробную статистику использования ресурсов, которая будет способствовать объяснению вашего исходного вопроса, если вы установите ее.
решение2
Чтобы ответить на вопрос «Профилирование операционной системы Windows», я предлагаю попробовать воспользоваться инструментом MicrosoftНабор инструментов для оценки производительности WindowsV5.0 - включает в себяВПР(Регистратор производительности Windows) иВПА(Анализатор производительности Windows).
Он включен вWindows ADK.
Работает с Windows 7 и более поздними версиями.
Дополнительные отправные точки:
- Монитор ресурсов(resmon.exe) — включен в Windows Vista (и более поздние версии).
- Microsoft'sSysinternalsимеет различные инструменты.
решение3
Попробуйте инструментМонитор процессаесли вы хотите увидеть, что делает процесс при запуске. И для справки, большая часть "ожидания" в наши дни - это ожидание на жестком диске - улучшения ЦП и памяти быстро опережают скорость, с которой жесткие диски становятся быстрее. Если вы откроете диспетчер задач, а затем посмотрите его во время запуска программы, вы увидите, насколько ЦП фактически используется - если только ЦП не достигнет 100% и не застрянет там, то ЦП простаивает, пока жесткий диск пытается снабдить его информацией.