Windows – существо небыстрое. Все лишние службы остановлены, диск только что дефрагментирован, а она все тормозит.
Эта статья откроет дверь в мир высоких энергий и больших скоростей, поможет радикально увеличить производительность операционной системы, практически ничего не отдавая взамен. В основном мы будем говорить о линейке Windows NT (к которой принадлежат W2K, XP и 2003), но и пользователи 9x найдут для себя кое-что интересное.
Казалось бы, тема оптимизации Windows выжата досуха и ничего нового никому предложить уже не удастся. Ан нет! Как раз наиболее значимые приемы разгона остаются в тени, не выходя за пределы прокуренных хакерских кулуаров. Сегодня мы расскажем о шести из них.
Оптимизация загрузки
Даже на быстрых машинах загрузка операционной системы занимает весьма продолжительное время, что не может не раздражать. Специалистам известно, что лучший способ ускорить загрузку Windows – не загружать ее вообще. Кроме шуток! Если компьютер поддерживает ACPI и галочка "После приостановки перейти в спящий режим" в Панели Управления --> Электропитание --> Спящий Режим взведена, то при выборе пункта «Переход в Ждущий Режим» в «Завершении Работы» операционная система сбросит содержимое оперативной памяти на жесткий диск. А затем, после включения питания, вновь вернется в свое исходное состояние, как будто никакого отключения вообще не происходило.
В этом случае, во-первых, мы экономим время на открытии приложений, а, во-вторых, подготовка системы к работе происходит минимум в три-пять раз быстрее ее нормальной загрузки. Естественно, на диске должно быть свободно, по меньшей мере, 256 Мб памяти и он должен быть дефрагментирован, в противном случае разница в скорости окажется не так велика.
Оптимизация профиля
При хроническом недостатке оперативной памяти операционная система вынуждена интенсивно обмениваться с файлом подкачки, съедающим всю производительность. Чем больше оперативной памяти, тем лучше. Для комфортной работы с Windows XP требуется не меньше 512 Мб. Уточнить эту цифру поможет Диспетчер Задач, вызываемый ALT-CTRL-DEL. В идеале, пиковое выделение памяти не должно превышать количества физической памяти, установленной в материнскую плату, но даже при этом диск не прекратит стрекотать, оттягивая на себя львиную долю производительности.
Запустив «Файловый монитор» Марка Руссиновича, который можно найти и скачать бесплатно, мы обнаружим, что все дело в реестре и во временных файлах, к которым система обращается даже тогда, когда ничего не происходит. В спокойном состоянии в среднем насчитывается до 100 дисковых запросов в секунду, и, хотя большая их часть оседает в кэше и до винчестера не доходит, нормальной такую ситуацию назвать нельзя. Ну не умеет Windows грамотно распоряжаться оперативной памятью!
Установка виртуального диска ускоряет работу системы в 10-50 (!) раз. Это кажется невероятным, но это факт. Разумеется, количество установленной памяти должно составлять не менее 256–512 Мб, в противном случае вместо разгона мы получим торможение. К сожалению, в комплект штатной XP поставки драйвер виртуального диска не входит и его приходится добывать в интернете самостоятельно, набирая в своем любимом поисковике "RAMDRIVE" или "RAMDISK". Среди кучи откровенного барахла обращает на себя внимание RamDisk Plus от компании Super Speed, который, кстати говоря, автоматически сохраняет свое содержимое на жестком диске при выключении питания.
Сам по себе виртуальный диск еще не обеспечивает высокого быстродействия системы, и реальное увеличение производительности достигается только после перемещения пользовательского профиля. Войди в систему под администратором и скопируй папку «Document And SettingТвое Имя» на виртуальный диск. Затем в Панели Управления, щелкнув по иконке "Пользователи и Пароли", во вкладке "Дополнительно" нажми одноименную кнопку и дважды кликни по своему пользователю. В появившемся диалоговом окне надо перейти к вкладке "Профиль" и указать новый путь к профилю. Теперь в Панели Управления --> Система --> Дополнительно --> Переменные Среды найдем переменные TMP и TEMP, перенаправив их на папку TEMP виртуального диска.
После перезагрузки у тебя не останется иного выбора, кроме как насладиться многократно возросшим быстродействием! Однако теперь при зависании системы, неожиданной перезагрузке или отключении питания некоторые из важных данных могут быть утеряны, поэтому будет не лишним обзавестись UPS.
Изгнание демонов из дисковой подсистемы
Неоправданно низкая производительность жесткого диска зачастую объясняется большим количеством ошибок передачи данных по интерфейсу ATA-100, который в отличие от своих предшественников умеет контролировать целостность циркулирующей по нему информации и при возникновении ошибки повторять операцию пересылки. В запущенных случаях данные удается передать только с сотой попытки! Все ошибки автоматически протоколируются системой мониторинга S.M.A.R.T., статус которой отображают многие тестовые программы (например, AIDA32). Зайди в Хранение Данных --> SMART --> C7 Ultra ATA CRC Error Rate и посмотри на значение счетчика ошибок. В идеале, таковых не должно быть вообще.
Большое количество ошибок указывает либо на аппаратную несовместимость винчестера с данной материнской платой, либо на его неправильное подключение. Стоит проверить, не перекручен ли ленточный кабель, и при необходимости укоротить его. Один конец кабеля должен быть подключен к контроллеру, другой – к жесткому диску. Совершенно не рекомендуется подключать винчестер к центральному разъему, оставляя болтаться образовавшуюся "соплю". Это увеличит интенсивность паразитных наводок и только ухудшит ситуацию. Воткни ее во второй винт или просто обрежь.
Оптимизация квантов времени
Квантом называется количество процессорного времени, отпущенного потоку, по истечении которого Windows автоматически перебрасывает нить управления на другой поток. Чем короче квант, тем выше накладные расходы на переключения контекста и ниже эффективность использования кэш-памяти. С другой стороны, с ростом длины кванта ухудшается "плавность" многозадачности – потоки начинают двигаться рывками, подолгу простаивая в очереди на выполнение.
Открываем следующую ветвь реестра:
HKLMSYSTEMCurrentControlSetControlPriorityControlWin32PrioritySeparation.
Для оптимизации системы под выполнение одиночных приложений (например, динамичных игр с продвинутой графикой) изменяем текущее значение на 16 (шестнадцатеричное), а для работы с большим количеством фоновых приложений более предпочтительным окажется 2A (шестнадцатеричное). После перезагрузки изменения вступят в силу. Кстати, для всех этих телодвижений необходимы права администратора.
Разводка устройств по PIRQ/IRQ
Аппаратно PCI-шина поддерживает до четырех прерываний, обозначаемых латинскими буквами A, B, C, D или номерами PIRQ, что расшифровывается как PCI IRQ, причем внутренние PCI-устройства, такие, как USB-контроллер, беззастенчиво используют прерывания из общего фонда, из-за чего количество свободных прерываний тает прямо на глазах.
Несмотря на то что совместное использование одного PCI-прерывания несколькими устройствами является вполне нормальным состоянием, этого лучше избегать, ибо система, не знающая, откуда пришло прерывание, вынуждена опрашивать все устройства по очереди. Теоретически это требует нескольких десятков тактов системной шины (или порядка тысячи тактов процессора), практически же… на рынке присутствует большое количество устройств, не вполне соответствующих спецификациям и вызывающих обвальное падение производительности при разделении своего прерывания с другими устройствами.
Речь идет отнюдь не о линиях IRQ, настраиваемых в Диспетчере Устройств, а именно об аппаратных прерываниях. Дешевые материнские платы жестко закрепляют за каждым PCI-слотом свой набор прерываний, более дорогие модели позволяют манипулировать прерываниями из BIOS. Варьируя настройки или переставляя платы из одного слота в другой, можно добиться наибольшей производительности системы (при устранении конфликтов обычно она увеличивается в несколько раз), при этом следует учитывать, что ACPI-контроллер имеет тенденцию вешать все PCI-прерывания на одно IRQ (обычно это IRQ 9).
Если это так, зайди в Диспетчер Устройств и присвой каждому из устройств свою линию прерывания. Вопреки распространенному мнению, приоритет прерывания (чем ниже номер IRQ, тем выше приоритет) на производительность системы не оказывает ровным счетом никакого влияния (правда, неудачная расстановка приоритетов может приводить к конфликтам различной степени тяжести, но это тема отдельного разговора). Не факт, что эти изменения возымеют действие. ACPI-контроллер виртуализует IRQ, и отображаемые Диспетчером Устройств значения могут не соответствовать действительным. К сожалению, отключение ACPI требует переустановки системы и лишает нас возможности сброса содержимого оперативной памяти на диск, о котором писалось выше. Так что использовать ACPI или нет – решать тебе.
Упреждающая загрузка динамических библиотек
Большинство динамических библиотек загружается и выгружается на лету – по мере возникновения в них необходимости, однако специальный ключ реестра хранит имена DLL, подключаемых еще на стадии загрузки системы и никогда не выгружаемых вплоть до завершения работы с ней. С одной стороны, это увеличивает время загрузки Windows и объем потребляемой памяти, с другой – ускоряет время загрузки самих приложений. Но, если Windows в идеале загружается не чаще одного раза в день, то открывать/закрывать приложения приходится многократно.
Запусти Редактор Реестра и открой следующую ветвь: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerKnownDLLs, в которой, как видно, "прямым текстом" перечислены имена библиотек, известных системе. "Имя" – это имя библиотеки без расширения, а "значение" – имя библиотеки с расширением, а при необходимости еще и с путем, если он отличается от каталога System32. Прописав сюда наиболее интенсивно используемые DLL своих фаворитных приложений, можно сэкономить немало времени. Определить, какие конкретно динамические библиотеки использует данное приложение, поможет уже упомянутый «Файловый монитор» Марка Руссиновича или утилита «dllviewer», которую можно скачать с его же сайта.