четверг, 3 февраля 2011 г.

Ваш профайлер может показать проблему, которой нет

Это перевод Your profiling tools can manufacture performance issues where there were none. Автор: Реймонд Чен.

Когда вы анализируете производительность программы, вы должны знать, что ваши утилиты измерения производительности могут влиять на измеряемые ими же операции. Это особенно верно в случае, если утилита измерения производительности запускается на той же машине, что и изучаемая программа.

Люди часто жалуются, что Проводник каждые две секунды вызывает ошибку страницы (page fault), причём даже когда он ничего не делает. Они определили это запуском Диспетчера задач и наблюдением за колонкой "Ошибки страниц" - эта колонка увеличивается на единицу каждые две секунды.

Мы так часто получали этот отчёт, что меня попросили сесть и разобраться, что происходит.

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

Если вы ещё не поняли, то причина этих ошибок страниц заключается в самом Диспетчере задач. Имейте ввиду, что это "soft faults" и поэтому они не приводят к операциям с диском. Каждые две секунды (при нормальной скорости обновления), Диспетчер задач обновляет загрузку процессора, перерисовывает значок в области уведомлений - и этот процесс обновления приводит к ошибкам страниц.

Без Диспетчера задач, без анимированной иконки в области уведомлений - никаких ошибок страниц в Проводнике во время простоя.

(Аналогичный эффект был обнаружен Марком Руссиновичем, когда он обнаружил, что опрос функцией EnumServiceStatusEx в Process Explorer приводит к постоянным доступам в реестр)

Комментариев нет:

Отправить комментарий

Можно использовать некоторые HTML-теги, например:

<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>

Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку (поддерживается OpenID).

Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.

Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.