софтComputer Review#6(56)

Зеленский Евгений, z7@panorama.irk.ru, http://z7.da.ru

Windows 98: хотите работать быстрее?

 Для опытных пользователей

С появлением Windows98 многие пользователи её предшественницы (Win95) встали на распутье: «стоит, или не стоит пользоваться …Windows98».

 Эпоха всеобщей компьютеризации в нашей стране познакомила многих её граждан с компьютерами. Для многих это знакомство началось со ставшей уже родной им операционной системы Windows 95. Долгожданный же выход Windows 98 внёс в ряды рядовых пользователей колоссальную неразбериху и сумятицу. Первые впечатления оказались не такими острыми, как ожидалось, и, следовательно, на повестку дня встал вопрос: “Что же это Microsoft делала-то столько времени?” Прогресс в мире компьютерного железа виден налицо, и продвинутый компьютер времен выхода Windows 95 сейчас стоит на каждом втором рабочем месте. Появление Windows 98, казалось бы, показало, что Microsoft не идет (или не хочет идти) в ногу с прогрессом. А ведь на самом деле работа шла, и её результаты, не всем известные, и не всегда лежащие на поверхности, заслуживают внимания.

 Итак, давайте разберемся по порядку, что даст пользователю установка Windows 98 на свой компьютер.

 Ускорение загрузки программ

 
В Windows 98 программа дефрагментации умеет собирать в одно место файлы, которые требуются программам при их загрузке, и размещать сами файлы программ на диске таким образом, чтобы ускорить их загрузку. То есть после проведения такой дефрагментации вы заметите, что программы, например, редактор Word, стали загружаться быстрее (естественно, после повторной дефрагментации дополнительного ускорения вы не получите). Возникает вопрос: “За счет чего же достигается ускорение?” А происходит оно за счет фрагментации программных файлов. Да-да, именно той самой фрагментации, которой все боятся как огня.

 А дело вот в чем. Когда-то давно все программы были маленькими, полностью помещались в оперативной памяти, и при запуске программы она целиком считывалась в память и только потом запускалась. Сразу приходят на ум слова, сказанные когда-то Гейтсом: “640 килобайт должно хватить всем”. Но размеры программ все росли, росла потребность в памяти, и, чтобы обойти затруднение, программы стали делать из нескольких модулей, так называемых "оверлеев". При этом в память сначала загружается небольшой участок программы, который выполняет свою работу, а затем загружает другой участок кода. Тот, в свою очередь, может вызвать первый модуль или обратиться к другому и так далее. Или же основной модуль находится в памяти постоянно и подгружает дополнительные модули, требующиеся в данный момент. С увеличением объема оперативной памяти компьютеров и появлением виртуальной памяти, доступной программам, выгрузку на диск неиспользуемых частей кода взяла на себя операционная система. Часто в этой выгрузке вообще не возникает потребности в связи с резко увеличившимся за последнее время объемом оперативной памяти компьютеров. Но программы по-прежнему состоят из модулей, и эти модули расположены в файле в том порядке, как их поставит программа-компилятор, вне всякой связи с тем, в каком порядке они будут обрабатываться в памяти.

 Рассмотрим конкретный пример - программу проверки системного реестра Scanregw.exe. В русской версии Windows 98 она имеет размер 86016 байт и на диске с 16-килобайтными кластерами занимает 6 кластеров. После обычной дефрагментации все эти кластеры будут расположены в одном месте диска строго друг за другом в порядке возрастания номеров. Допустим, для простоты, что вся программа разместилась на одной дорожке и заняла ее полностью, а скорость вращения диска составляет шесть тысяч оборотов в минуту, что примерно соответствует параметрам современных жестких дисков. Если бы программа считывалась в память строго последовательно так, как записана на диск, то она была бы загружена в память не более чем за один оборот диска, то есть менее чем за 10 мсек. Однако, в реальности картина загрузки иная. Сначала считывается первый кластер, затем требуется программный код, хранящийся в пятом кластере. Возникает пауза в загрузке, пока под головками пройдут второй, третий и четвертый кластер, то есть задержка в нашем примере составит примерно 5 мсек. Но после пятого кластера требуется не шестой, а третий, который прошел под головками совсем недавно. Приходится ждать еще 7 мсек. После третьего кластера без потери времени считывается четвертый, а затем проходит еще 7 мсек в ожидании второго кластера. На этом загрузка заканчивается, поскольку программный код из шестого кластера так и не понадобился. Время загрузки по сравнению с идеальным выросло почти в три раза.

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

 Ускорение работы ОС

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

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

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

 Эти советы применимы только для Windows 98.

  1.  Увеличение количества доступной памяти.

     
    Подобно некоторым программам типа MagnaRAM (например, QEMM), Windows 98 умеет сжимать малоиспользуемые участки оперативной памяти, увеличивая тем самым ее эффективный размер. Чтобы включить эту возможность, запустите программу MSConfig и щелкните на кнопке "Дополнительно" (Advanced). В открывшемся окне установите параметр "Ограничить память до" (Limit memory to). Станет доступным окно, в котором можно задать количество памяти, используемой Windows. Задание величины, большей, чем количество имеющейся физической памяти, включит механизм уплотнения. Оптимальное соотношение между этими величинами равно двум. Значительное увеличение степени сжатия обычно приводит к снижению производительности, поскольку фактическая величина сжатия редко бывает намного больше двух, а чересчур оптимистическая оценка приведет к резкому повышению интенсивности подкачки страниц.

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

  2.  Отключение проверки правильности операций.

     
    В программном коде Windows довольно значительная часть отведена различным проверкам - успешно ли прошло чтение с диска, является ли адрес элемента массива или таблицы допустимым и т.д. и т.п. Проверяются практически все операции, которые можно проверить. Естественно, на эти проверки требуется время. Чтобы отключить их, запустите редактор реестра, найдите раздел HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion и создайте в нем подраздел Performance. В этом подразделе создайте новый параметр CheckOff типа "DWORD" и присвойте ему значение 1.

  3.  Отключение выполнения избыточного кода.

     
    Ни для кого не секрет, что Windows 98, состоящая из более чем 40 миллионов строк кода, рассчитана на использование в самых различных условиях и на самом различном оборудовании. В ряде случаев некоторые участки кода вполне можно было бы не выполнять без каких-либо последствий. Тем не менее, исходя из стремления избежать возникновения проблем, даже тех, которые проявляются лишь в исключительных ситуациях, выполняется весь код. Вы можете, ценой незначительного снижения надежности и стабильности, заставить Windows 98 пропускать участки кода, исполнять которые в данной ситуации необязательно. Строковый параметр Speed, помещенный в упомянутый выше раздел Performance, выполняет именно такую функцию. Его оптимальное значение - 2х (латинский икс, а не русское "х.."!), что обеспечивает примерно двукратный прирост скорости выполнения части модулей. Число можно увеличить, попытавшись заставить Windows 98 работать еще быстрее, но в большинстве ситуаций это приведет к прямо противоположному результату. Ведь, наткнувшись на случай, когда пропущенные команды оказываются необходимыми, Windows выполняет откат и начинает вычисления сначала (и так без конца ;)).

  4.  И последний параметр.

     
    Это параметр RunMuchFaster типа "DWORD", равный единице и помещенный в тот же самый раздел реестра (Performance). О механизме его работы автору ничего не известно, но, судя по названию, должно работать.

 Мелочь, а приятно

 
Закончив с ускорением, при дальнейшем исследовании Windows98 обнаружилось несколько приятных и/или интересных мелочей, которые могут вам пригодиться:

  1.  Оказывается, Windows 98 умеет измерять скорость работы дисковода компакт- дисков. Вставьте в дисковод цифровой компакт-диск и запустите программу "Сведения о системе" (System Information), находящуюся в группе "Служебные". Раскройте список "Компоненты" (Components), а затем находящийся в нем список "Мультимедиа" (Multimedia). Щелкните на пункте "Дисковод компакт-дисков" (CD-ROM). Через секунду-другую вы увидите сообщение о том, с какой скоростью считался один из файлов с этого диска и какая доля ресурсов процессора занимается при передаче данных. Если Windows 98 не сможет найти подходящего для тестирования файла, она сообщит об этом. Тогда вставьте другой диск и нажмите клавишу F5.

     Но если вы установили Office 97 после установки Windows 98, то программа "Сведения о системе" окажется затертой одноименной программой из состава Office 97, и ее потребуется переустановить :o)

  2.  На компакт-диске Windows 98 в каталоге \tools\reskit\powertoy лежит утилита TweakUI (возможно, знакомая вам по пакету PowerToys для Windows 95). Количество настроек, которые можно изменить с ее помощью, превосходит любое воображение. Недаром одна из ее вкладок называется "паранойя". В частности, вы можете отключить вывод в меню "Пуск" пунктов "Избранное" и "Мои документы", скрыть любой из дисков компьютера (только под Windows), включить автоматическую регистрацию при запуске Windows, спрятать различные значки рабочего стола и панели управления, отключить IE4 (между прочим, безболезненно) и сделать еще многое-многое другое. Существуют конечно и более мощные программы (WinBoost, например), но уже они являются shareware.

 Подведя черту, можно сказать, что ни к чему плохому использование Windows98 не приведет, и настроить ее под себя вы всегда сумеете.

 Здесь - о светлом будущем в виде Windows 2000.


софтComputer Review#6(56)

Copyright © 1998 "Компьютерное обозрение"
Дизайн - leidenwebdesign - http://leiden.irkutsk.ru