Оптимизация Windows — мифы и реальность


Важное замечание. В статье читатель не найдет таблиц или графиков производительности, подтверждающих или опровергающих то или иное утверждение. Причины, по которым автор не стал заниматься измерениями быстродействия, будут изложены ниже. Те, кому такие цифры и графики дороги, могут выполнить измерения самостоятельно. В конце статьи имеется ссылка на тему, в которой будут всячески приветствоваться добротные результаты. Еще один вариант — не читать статью вообще, ведь, как говорила Алиса, книжка без картинок или хотя бы без разговоров — книжка неинтересная. Не исключено, кстати, что кто-то действительно читать не станет, ведь время от времени в форумах появляются высказывания в духе «вы мне тут не умничайте, вы пальцем ткните, что в реестре надо изменить, чтобы система заработала быстрее». Увы, не умничать не получится.

Введение

Многочисленные сайты и сборники советов понимают под словом «оптимизация» как изменение различных настроек системы: штатных, не вполне штатных и совсем нештатных — так и отключение различных функций системы. Интересно отметить, что автору ни разу не попались сколько-нибудь достоверные результаты измерений, наглядно показывающие, что система после этого действительно стала работать быстрее.

Как правило, либо приводятся образные сравнения («система буквально залетала»), либо декларируется без каких-либо доказательств, что система будет работать быстрее. Насколько именно быстрее — зависит, как кажется автору, от соотношения скромности и энтузиазма в личных качествах того, кто составил данный вариант советов. Скромные люди обещают прирост в десятки процентов, менее сдержанные — в разы, а однажды встретилось даже обещание 10—50-кратного увеличения скорости.

Впрочем, справедливости ради следует отметить, что числа, показывающие изменения после оптимизации, все же время от времени встречаются, но в большинстве таких случаев речь идет не о скорости работы, а о скорости загрузки системы. Еще реже приводятся числа, показывающие прирост скорости в той или иной игре или тесте производительности, обычно 3DMark.

Безусловно, некоторая связь между скоростью загрузки и скоростью работы существует, но она не настолько прямая, как хотелось бы «оптимизаторам», а иногда даже противоположная — увеличение скорости загрузки может снизить скорость запуска программ.

Для полноты картины можно упомянуть случаи указания заведомо ложных данных, как, например, в достаточно широко распространившейся байке про значительный, до 175%, прирост скорости работы Windows XP, если при установке выбрать уровень абстрагирования оборудования для компьютеров с процессором 80486C.

Так как же эта оптимизация влияет на скорость компьютера? В подавляющем большинстве случаев либо улучшения настолько микроскопические, что их не заметить даже хорошо вооруженным глазом, либо можно получить ухудшение работы. К счастью, во многих случаях, также микроскопическое. Зато хорошо заметны даже невооруженным глазом потери времени сначала на изучение всех этих советов, потом на их применение, а потом, нередко, на поиски причин тех или иных ненормальностей в работе системы и их устранение. А эти ненормальности, к сожалению, появляются чаще, чем хотелось бы, ведь почти всегда советчики по «улучшению» не говорят о побочных эффектах изменения той или иной настройки.

Сейчас уже большинство специалистов понимают бессмысленность подобных «оптимизаций» и то, что они не экономят главный ресурс — время пользователя, сидящего за компьютером. Любой разумный человек также понимает, что глупо надеяться на наличие в Windows скрытых ресурсов, дающих возможность заметно увеличить производительность системы, но неизвестных разработчикам, хотя об этих ресурсах трубят на каждом углу интернета.

Но количество энтузиастов, желающих «разогнать» систему так же, как они «разгоняют» процессор, все равно еще довольно велико. И отзывов о том, что после того или иного изменения система стала работать заметно быстрее, можно найти немало. Но если скорость работы системы не увеличилась, то откуда ж такие отзывы берутся?

Немного о человеческой психофизиологии

Казалось бы, какое отношение это имеет к теме обсуждения? Самое прямое!

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

Если человек ожидает какого-то результата, то подсознательно будет корректировать свои ощущения в его пользу, и нет возможности заставить себя быть абсолютно объективным. Недаром во время дегустации вин экспертам приносят не «каберне», «рислинг», «мозельское», а нумерованные бокалы.

Приведу пример из жизни. Как вы, возможно, знаете или помните из личного опыта, лет десять с небольшим назад были распространены системные платы для процессоров Pentium, в которых кэш второго уровня мог кэшировать только 64 МБ памяти. Если в такую плату вставляли больше памяти, то ядро Windows и драйверы попадали в некэшируемую область памяти и скорость работы снижалась примерно на 10 процентов.

Я написал программу, которая пыталась заставить Windows загружаться в кэшируемую область. Программа срабатывала не всегда, но если срабатывала, то восстанавливала быстродействие. В некоторых полученных откликах писали следующее: «Я установил программу, она написала в своем протоколе “не установлена”, но я УВЕРЕН, что она установилась, поскольку видно ЗНАЧИТЕЛЬНОЕ ускорение». После уточняющих вопросов с моей стороны оказалось, что программа запускалась на компьютере с процессором Pentium III, где она в принципе не могла что-либо улучшить. Но алгоритм, использовавшийся в программе, и его описание в документации оказались достаточно убедительными, чтобы создать ощущение заметного на глаз ускорения работы.

Еще один пример взят из форума iXBT: «Flatout 2(гонки) стал быстрее идти!»

Если вы не поняли, в чем тут закавыка, поясню: в системе не изменилось ровным счетом ничего, Windows XP не использует параметр реестра SecondLevelDataCache и не читает его.

Слепой метод

Так все-таки, если кажется, что система работает быстрее, то она действительно работает быстрее или надо перекреститься, чтобы увидеть истину? Нет, креститься не надо. Надо использовать слепой, а лучше двойной слепой метод. Если вы еще не слышали, что это такое, поясню: при слепом методе испытуемый (или оценщик, или эксперт, или дегустатор и пр.) не знает, что именно он оценивает, ему предоставляют несколько нумерованных вариантов, среди которых он делает выбор.

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

Например, мне довелось как-то читать о якобы «слепом» сравнении кабелей для звуковой аппаратуры, в котором человек менял пронумерованные кабели, а потом «прослушивал» их. Утверждалось, что он не знал, какой именно кабель ставит в данный момент, хотя сравниваемые кабели отличались по диаметру в несколько раз и, следовательно, понять, где какой, особого труда не составляло.

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

Есть, впрочем, сравнительно простой способ получить результаты сравнения (но зато и несколько менее верные), и его, помимо прочих, используют в «Майкрософт». Он заключается в том, что рядом ставят два идентичных компьютера с разным ПО или с разной конфигурацией этого ПО, два человека выполняют на этих компьютерах одинаковые действия, а еще несколько человек оценивают, на каком компьютере работа идет быстрее.

Измерим результаты?

Ну что же, раз замерам на глаз доверия нет, надо использовать секундомер и различные программы, измеряющие скорость — не так ли? Казалось бы, чего проще: запустил тест, записал результаты, подкрутил настройки, еще раз запустил тест, сравнил результаты, и, вуаля, все ясно и очевидно — скорость либо увеличилась, либо уменьшилась, либо не изменилась.

Но не зря говорится, что дьявол кроется в деталях, и не зря приходят на ум слова Эйнштейна: «Здравый смысл — это набор предрассудков, накопленных человеком до достижения им 18 лет».

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

Комплекс из компьютера и современной операционной системы — это сложная система (прошу прощения за тавтологию), в которой одновременно происходит много процессов, и абсолютной повторяемости достичь невозможно. Например, во втором замере файлы могли расположиться на диске по-другому, что, конечно, хоть и в небольшой степени, но скажется на результатах.

Более того, даже такие тесты, как проверка быстродействия видеоадаптера, могут давать отличающиеся результаты, что называется, на ровном месте. В качестве примера можно привести это сообщение в форуме. Несмотря на то, что никаких реальных изменений в системе не произошло (напомню, Windows XP не использует изменявшийся параметр реестра), результаты измерений оказались различными.

В общем-то, ни для кого не секрет, что внутренние процессы, происходящие в Windows, могут повлиять на результаты других тестов, увеличив разброс результатов и, тем самым, снизив их достоверность. И корпорация «Майкрософт», лучше других зная свои ОС, публикует рекомендации, как добиться уменьшения разброса результатов измерений, см., например, http://www.microsoft.com/whdc/archive/benchmark.mspx и http://www.microsoft.com/whdc/system/sysperf/Win7Perf.mspx.

Так что в обычных условиях выполнить только два замера и делать на их основании выводы может оказаться несколько опрометчивым поступком. Конечно, в ряде случаев это может быть вполне допустимым, но мы-то здесь обсуждаем случаи, когда разница в замерах ожидается достаточно малой. Автор, конечно, имеет в виду не ожидания энтузиастов «со взором горящим», а ожидания специалистов.

Например, десять лет назад я изучал влияние параметра ConservativeSwapfileUsage на работу Windows 98 и в ходе экспериментов выполнил 12 замеров. После обработки результатов стало ясно, что изменения, происшедшие в системе, невелики и сопоставимы с разбросами результатов, полученных в одинаковых условиях. Привлечение методов статистической обработки результатов экспериментов показало, что для определения того, насколько изменилось быстродействие системы, понадобится провести как минимум несколько сотен замеров. Естественно, пришлось ограничиться качественными выводами, а не количественными.

Несколько слов о вероятностях

А при чем здесь какие-то вероятности, и вероятности чего? — слышится автору вопрос недоумевающих читателей. А при том, что ситуации, подобные обсуждаемой, когда на результаты эксперимента может оказывать влияние (пусть и небольшое) значительное количество факторов, следует рассматривать именно с точки зрения теории вероятности. Точнее, одного из ее разделов — статистической обработки результатов экспериментов.

Приведем условный пример: вы находите некий совет порыться в настройках, чтобы с вероятностью 50 процентов получить ускорение работы системы. Можно ли сказать, что воспользоваться им — означает ускорить систему? Очевидно, нет, ибо с точно такой же вероятностью можно получить замедление. А если вероятность 55 процентов или 60? Тоже вряд ли.

Так какова же должна быть вероятность, чтобы можно было уверенно утверждать, что некое изменение повышает скорость работы? Ответ «100 процентов», конечно, весьма желателен, но, увы, недостижим для случаев измерений, выполняемых в сложных системах. Как правило, используется вероятность 0,95, реже 0,9.

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

Разброс между отдельными измерениями при равных условиях составляет единицы процентов, а выигрыш от изменения настройки, если есть, гораздо меньше, поэтому ориентироваться следует именно на тысячи измерений. Вряд ли кто-то решит предпринять такой титанический труд ради выяснения, какой именно прирост скорости дает та или иная настройка и дает ли она прирост вообще. Значит, и измерений, подтверждающих пользу от таких «улучшений», ожидать не стоит.

Так что же делать, на что опереться, если решил прибегнуть к «оптимизации»? Об этом — во второй части статьи.



Дополнительно

iXBT BRAND 2016

«iXBT Brand 2016» — Выбор читателей в номинации «Процессоры (CPU)»:
Подробнее с условиями участия в розыгрыше можно ознакомиться здесь. Текущие результаты опроса доступны тут.

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.