Перейти к контенту ↓


Память в Windows 9x
Борьба со склерозом

…в новой версии Windows для ограничения доступа неквалифи­цированных пользователей к настройкам системы, ввели обязательный тест на IQ — коэффициент интеллекта  — появляющийся при попытке вызвать Панель управления…

Кошмарный сон юзера

Пользователи компьютеров давно вывели новый закон природы: оперативной памяти не может быть много! Если вы, покупая новый ПК, полагаете, что для всех ваших потребностей вполне хватит 64 мегабайта, то, делая заказ в магазине, смело умножайте эту цифру на два — не ошибётесь. Новые приложения для Windows, да и сами операционные системы с каждым релизом становятся всё более требовательны к объёму оперативной памяти, и уже никого не удивляет, что какой-нибудь очередной потомок великого DOOM порождает swap-файл мегабайтов на двести даже на машинах со 128 метрами «оперативки».

Как выиграть в этой гонке, и возможно ли в ней выиграть вообще? К сожалению, всё-таки придётся идти экстенсивным путём, постоянно докупая всё новые и новые модули памяти. Однако, немного разобравшись, как эта самая память расходуется операционной системой, а расходуется она, конечно же, не очень-то экономно, можно пока, в ожидании какого-нибудь выигрыша в лотерее или наследства, подправить чуть-чуть настройки Windows, освободив немного драгоценных байтов памяти. Кто-то, возможно и назовёт это ловлей блох, ведь большого выигрыша действительно не получится, но зачем бездарно тратить то, чего всегда не хватает? Особенно бывает важно сэкономить драгоценные килобайты так называемой «базовой» памяти для некоторых DOS-программ, отказывающихся запускаться из обычного окна Windows.

Теория

Для начала немного теории. Память в IBM-совместимых компьютерах в силу разных причин (в основном из-за недальновидности или ошибок их создателей), логически подразделяется на несколько типов:

  1. 0—640 КБ — базовая (Conventional Memory Area, CMA) память, требуется только для ядра операционной системы, некоторых драйверов и DOS-программ, причём тех, которые из простого сеанса MS-DOS не хотят работать, требуя перезагрузки системы в режим эмуляции MS-DOS. DOS-приложения, для запуска, вообще-то, требуют именно эту память, но работающие в «виндовом» окне, только «думают», что используют базовую память, на самом же деле, Windows предоставляет им некое виртуальное адресное пространство, располагающееся в области памяти выше первого мегабайта. Проверить это легко, если, запустив, например, пару окон Нортон Коммандера, ввести в командных строках обеих окон команду «MEM /P/C». В полученных результатах распределения памяти будет видно, что, во-первых, Нортоны «не видят» друг друга, во-вторых, каждый «считает», что находится в базовой памяти. После этого, не закрывая Нортонов, введите ту же команду в строке «Выполнить» кнопки «Пуск» — вы обнаружите, что в действительности никаких Norton Commander в базовой памяти нет и она почти вся свободна. Ещё более подробную картину распределения стандартной памяти можно наблюдать, если набрать в командной строке Windows «MEM /D/P». Кстати, в полученной таблице вы увидите, что Windows использует этот тип памяти только для ядра и драйверов реального режима типа HIMEM.SYS, загружаемых при старте системы по умолчанию, или из файлов конфигурации CONFIG.SYS и AUTOEXEC.BAT, а также под переменные среды окружения, задаваемые командами «SET» в конфигурационных файлах и используемые затем DOS-программами и операционной системой. Для работы большинства DOS-приложений достаточно примерно 600 килобайт свободной базовой памяти. Короче, если вы никогда не загружаете компьютер в режим MS-DOS, то особого смысла освобождать эту память нет, а для ядра MS-DOS и основных драйверов, используемых операционной системой, её обычно с лихвой хватает.
  2. 640—1024 КБ — верхняя память (Upper Memory Area, UMA) — частично используется видеоадаптером и системным BIOS, если включено в CMOS Setup «теневое» копирование видео- и системного ROM в более быструю RAM. Для DOS-программ и драйверов обычно недоступна, чтобы разрешить им её использовать, освободив тем самым базовую память, необходимо применить драйвер EMM386.EXE или один из его аналогов, например QEMM386.SYS, RM386.EXE, 386MAX.SYS. В CONFIG.SYS должна быть команда «DOS=UMB» для размещения в этой памяти компонентов операционной системы.
  3. Вся память выше 1024 КБ — дополнительная (или расширенная, eXtended Memory Area, XMA) используется всеми программами и операционной системой. Для доступа к ней (а также и к HMA, о которой речь ниже) применяется драйвер HIMEM.SYS, загружаемый всегда, даже если он не прописан в CONFIG.SYS. Обойти его загрузку можно с помощью стартового меню, или отменив загрузку «Default»-конфигурации системы командой «DOS=NOAUTO» в CONFIG.SYS.
  4. 1024—1088 КБ — высокая память (High Memory Area, HMA), начальная область XMA — используется Windows для загрузки основной части ядра реального режима, если это разрешено в CONFIG.SYS командой «DOS=HIGH»
  5. Отображаемая память (EMS — Expanded Memory Specification) — устаревший и очень медленный тип памяти, эмулировавшийся драйвером EMM386 с применением для этого и UMA и XMS-памяти. EMS нужна некоторым очень старым DOS-программам типа первого Wing Commander, и при использовании EMM386 её объём ограничивался 32 мегабайтами, что многократно превосходило запросы таких программ. Некоторые другие драйвера-аналоги позволяют адресовать до 64 мегабайт EMS-памяти (например, QEMM386). Windows может сама предоставлять в распоряжение DOS-программ, работающих в окне, эту память, даже если в CONFIG.SYS отсутствует вызов специального драйвера, поэтому, чтобы запретить раз и навсегда эту возможность, пропишите в CONFIG.SYS вызов EMM386 с параметром NOEMS:

    DEVICE=C:\WINDOWS\EMM386.EXE NOEMS

Таким образом, на основной массе современных домашних ПК, предназначенных для офисных программ, трёхмерных игрушек и музыки MP3, особенно заботиться об экономии базовой памяти, а тем более, о поддержке отображаемой памяти сегодня не нужно, так как DOS-программ, их использующих почти не осталось. Однако, ещё довольно много и таких пользователей, которые по разным причинам вынуждены их ещё применять, а в большинстве отечественных учреждений пока просто невозможно отказаться от старых DOS-приложений из-за накопленных больших баз данных для них, несовместимых с последними достижениями в области программного обеспечения типа всё поглотившего MS Office. В этом случае есть шанс предпринять ряд мер по увеличению эффективности использования памяти, если, конечно, какие-то программы испытывают в ней недостаток. Идущим же в ногу со временем пользователям Windows, устанавливающим каждый новый релиз этой ОС ещё до официального его выхода в свет, да и тем, кто просто не хочет, чтобы в памяти компьютера находился абсолютно ненужный мусор, тоже разрешается немного поэкспериментировать, чтобы потом гордиться супер тонкой настройкой системы.

DOS-приложения

Если вы раньше не занимались распределением памяти на вашем ПК, то картина её использования определяется загружаемыми по умолчанию установками Windows 98. «Винды» сами загружают, если в «конфиге» не прописана команда «DOS=NOAUTO» как бы «невидимый» CONFIG.SYS, в котором такие строки (предназначение каждой из них вам придётся изучить самостоятельно с помощью руководства по MS-DOS):

dos=high, auto
device= c:\windows\himem.sys
device= c:\windows\ifshlp.sys
device= c:\windows\setver.exe
fileshigh=30
lastdrivehigh=z
buffershigh=30
stackshigh=9,256
shell=command.com /p
fcbshigh=4

Эти драйвера и параметры задействованы, даже если в вашем «конфиге» они не прописаны (и даже если вообще отсутствуют файлы AUTOEXEC.BAT и CONFIG.SYS), при этом, если у вас уже есть в CONFIG.SYS команды без приставок «HIGH» (например, «files»), то выполняться все равно будут команды с этими приставками (типа «fileshigh»), для использования HMA памяти (вернее, «Винда» сама решает — использовать старшие адреса памяти или нет, и чаще всего окончания «HIGH» к командам добавляет). Значения, задаваемые командами files, lastdrive, buffers, stacks, fcbs, и драйвер SETVER.EXE нужны только приложениям MS-DOS, Windows 98 эти параметры не требуются. Существует и «скрытый» AUTOEXEC.BAT:

@echo off
net start
set tmp=C:\windows\temp
set temp=C:\windows\temp
set COMSPEC=C:\COMMAND.COM
prompt $p$g
path c:\windows; c:\windows\command

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

Например, немного базовой памяти можно высвободить, если задать командой «LASTDRIVEHIGH=…» букву реально последнего дисковода. По умолчанию памяти выделяется больше — она резервируется под все диски от A до Z — на каждый дополнительный диск расходуется 80 байт. Желательно командой «STACKSHIGH=0,0» отменить выделение памяти под стеки, отводимые для временного хранения различной системной информации и нужные только старым DOS-программам. Здесь экономия составит не менее 2304 байта. Командой «BUFFERSHIGH=20» можно ограничить количество буферов дискового ввода-вывода (каждый занимает 532 байта), так как «винды» используют собственную высокопроизводительную систему кэширования дисковых данных VCache, а для MS-DOS MODE этого значения обычно вполне хватает. Ещё один параметр, нужный в режиме эмуляции MS-DOS «досовским» программам — FCBS, задающий количество неких блоков управления файлами, на что, естественно, опять уходит ценная память (64 байта на каждый), его значение можно изменить на «FCBSHIGH=1». Базовую память можно сберечь, задав параметр «FILESHIGH=10», уменьшив тем самым число обработчиков файлов с 30 до 10 (на каждый по 60 байт, примерно). Если вы вообще никогда не загружаете режим эмуляции MS-DOS, то можете попробовать выставить ещё меньшие значения этих параметров, мой же вариант рассчитан на поддержку и этого режима. Если же вы используете какую-нибудь устаревшую программу, которая хочет работать только из режима эмуляции MS-DOS, то вам, возможно, придётся изменить эти параметры, наоборот, увеличивая их значения, иначе некоторые из «досовских» программ просто не запустятся. В этом случае, возможно, оптимальными значениями будут:

fileshigh=100
buffershigh=60
stackshigh=9,256
fcbshigh=4

Вообще, рекомендую в CONFIG.SYS прописать команду «DOS» следующего вида: «DOS=HIGH, UMB, NOAUTO» (команда «DOS=…», разумеется, должна быть только одна в «конфиге», параметры в ней перечисляются через запятую), чтобы ядро MS-DOS разместилось в HMA и UMA, и не загружались SETVER.EXE (нужен для старых DOS-программ) и DBLBUFF.SYS (нужен для SCSI-дисков) — чем меньше в оперативке всякой хрени — тем лучше. Желательно также при этом использовать в конфигурационных файлах команды с приставками «HIGH» типа DEVICEHIGH, LOADHIGH, INSTALLHIGH, BUFFERSHIGH, FCBSHIGH, FILESHIGH, LASTDRIVEHIGH, STACKSHIGH (если они вам нужны для загрузки каких-то драйверов или специфичных параметров), для освобождения CMA. Но сначала, чтобы вообще разрешить использование верхней памяти, впишите в CONFIG.SYS строки:

DEVICE=C:\WINDOWS\HIMEM.SYS /VERBOSE /TESTMEM:Off
DEVICE=C:\WINDOWS\EMM386.EXE NOEMS VERBOSE

Они должны быть в CONFIG.SYS самыми первыми и следовать именно в таком порядке.

Внимание! Если вы при этом не добавите в CONFIG.SYS третьей строку DEVICEHIGH=C:\WINDOWS\IFSHLP.SYS, то ваш компьютер может не загрузиться, так как команда «DOS=NOAUTO» отключает загрузку и этого драйвера файловой системы.

Используйте в этом случае загрузочный флоппи-диск или «компакт» для добавления в «конфиг» этой строки.

Параметр «HIGHSCAN» (может ещё немного добавить свободной верхней памяти) для EMM386 лучше не использовать, так как высока вероятность того, что это приведёт к ошибкам, и система зависнет. Да и сам EMM386 иногда конфликтует с некоторыми устройствами (например, ISA-сетевыми картами), использующими UMA для своих нужд. В этом случае поможет утилита MEMMAKER, которая определит, какие регионы UMA должны быть запрещены для других программ, добавив параметр «EXCLUDE» драйверу EMM386, например:

DEVICE=C:\WINDOWS\EMM386.EXE NOEMS X=CA00-D8FF X=DA00-DFFF

Если для работы надо включить поддержку устаревшей EMS-памяти, то необходимо добавить параметр «RAM» к драйверу EMM386 в CONFIG.SYS:

DEVICE=C:\WINDOWS\EMM386.EXE RAM

при этом, возможно, придётся отказаться от драйвера CD-ROM и некоторых других «досовских» драйверов для максимального увеличения объёма базовой памяти — лучше всего это делать, не меняя основные файлы конфигурации, а создав для этой программы свой PIF-файл, в котором и задать нужные значения (это делается в свойствах DOS-программы). При этом получится свой собственный конфигурационный вариант именно для этой программы, не оказывающий влияния на всю систему, так как он загружается только при старте конкретного приложения. Некоторые альтернативные современные менеджеры памяти позволяют даже ещё лучше освобождать CMA для особо «прожорливых» программ. Кроме того, не забывайте, что, если нажать на значке DOS-программы правую кнопку мыши и выбрать в появившемся меню пункт «Свойства», то можно на вкладке «Память» поэкспериментировать с разными параметрами, выделяя этой конкретной программе больше тех или иных ресурсов. После этого, вероятно, вообще отпадёт необходимость выхода в режим MS-DOS — программа заработает и в окне.

Некоторые резидентные DOS-программы, загружаемые при старте системы, удаётся заставить работать не из базовой, а из дополнительной памяти, если вызывать их не из AUTOEXEC.BAT, а из недокументированного файла C:/WINSTART.BAT, запускаемого почти в самом конце загрузки операционной системы.

При наличии в корне системного диска файла dblspace.bin или drvspace.bin Windows загрузит соответствующий драйвер сжатых дисков, даже если вы не используете эту функцию, поэтому не забудьте удалить эти файлы — зачем они занимают место в памяти? Вообще, очень полезно посмотреть, что грузится, выбрав в стартовом меню (нажать кнопку F8, при загрузке ПК, для его вызова) режим пошаговой загрузки «Step-by-step confirmation». При этом вы сможете увидеть и исправить ошибки в конфигурационных файлах, которые обычно возникают из-за неправильного написания путей к драйверам и файлам или отсутствия самих файлов.

Ещё одна проблема распределения памяти, с которой иногда сталкиваются пользователи Windows — нехватка базовой памяти, выделяемой под переменные окружения, задаваемые командой «SET». Она возникает, например, если вы хотите задать дополнительные параметры для видео ускорителя от 3dfx в «автоэкзеке», а получаете сообщение «Out of environment space», в этом случае пропишите строку в файле CONFIG.SYS:

SHELL=C:\COMMAND.COM /P /E:1024

Под переменные окружения будет отведено 1024 байта вместо 256, установленных по умолчанию.

В WindowsME картина с оптимизацией памяти для DOS-приложений несколько иная, чем в Windows98, так как вы не можете изначально изменять файлы AUTOEXEC.BAT и CONFIG.SYS (там, кстати, в памяти совершенно отсутствуют старые DOS-драйвера типа HIMEM, IFSHLP, но есть один большой блок данных под названием MSDOS 🙂). Допускается только задавать различные переменные окружения командой «SET», для чего удобно использовать обновлённую утилиту System Configuration Utility (C:\WINDOWS\SYSTEM\MSCONFIG.EXE). Существует в «Миллениуме» и возможность увеличить количество обработчиков файлов, но не командой «FILES=» в «конфиге», а прописав в раздел [386enh] файла System.ini такой параметр: «PerVMFiles=100». Для более же существенных изменений, требуемых какой-то программой, придётся загружать MS-DOS с дискеты, на которую и надо будет поместить конфигурационные файлы, составленные специально под конкретное приложение. Впрочем, не так уж сложно вернуть устаревший и всего лишь хорошо спрятанный режим MS-DOS в WindowsME, просто пропатчив систему программой с сайта http://www.sgmvp.freewebsites.com/WinME.htm [1].

Windows-приложения

Пока всё сказанное касалось, в основном, критичных к базовой памяти DOS-программ. Что же можно сделать для экономии и освобождения дополнительной памяти, используемой в Windows? Тут возможных путей, к сожалению, совсем не много.

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

Главной причиной утечки системных ресурсов, конечно же, являются фоновые программы, причём не только нужные пользователю «аськи» и файерволлы, но и процессы, о существовании которых он часто даже не подозревает. Без большинства этих программ вполне можно обойтись, для чего проще всего (и безопаснее) воспользоваться стандартной «виндовой» утилитой System Configuration Utility (C:\Windows\System\MSCONFIG.EXE). Она покажет в одном окне все программы, автозапуск которых прописан либо в реестре, либо в папке «Автозагрузка» меню «Пуск», что очень удобно. Запустив её, откройте вкладку «Startup» («Автозагрузка») и посмотрите, какие приложения загружаются при старте операционной системы. Вот что вы, скорее всего, там встретите:

  • «ScanRegistry» (scanregw.exe) — проверка и резервирование реестра, запускается вместе с Windows, в памяти не остаётся, поэтому её не следует отключать.
  • «TaskMonitor» (taskmon.exe) — тоже полезная программа, и её лучше оставить, так как она создаёт протоколы запуска приложений для последующей оптимизации расположения их файлов на диске при дефрагментации. Эти файлы вы можете просмотреть в папке C:\WINDOWS\APPLOG. Однако, постоянно находясь в памяти, требует некоторых ресурсов.
  • «Tweak UI» (tweakui.cpl) — утилита тонкой настройки системы, в памяти не остаётся, но немного замедляет процесс загрузки ОС.
  • «MS WebCheck Monitor» (Loadwc.exe) — создаёт установки Microsoft Explorer при первом запуске, в повседневной работе абсолютно не нужен.
  • «ShedulingAgent» (Mstask.exe) — планировщик задач, постоянно «висит» в системной области панели задач, если вы его не используете, то отключите.
  • «Microsoft Office Wrapper» (Osa.exe) — сомнительный ускоритель запуска программ MS Office (запуск из папки «Автозагрузка») — смело отключайте.
  • «File Open» (Findfast.exe) — вроде бы ускоряет поиск в документах «Офиса» (тоже запуск из «Автозагрузки»), но на деле, когда мало документов, это не сильно заметно — избавляйтесь и от него.
  • «LoadPowerProfile» (powrprof.dll) — загрузка схемы управления питанием — вещь местами нужная, если бы не грузилась почему-то два раза (!) — из раздела реестра «Run» и из «RunServices», поэтому один экземпляр (из «Run») можно удалить. А если ваш ПК настолько древний, что вы не используете управление питанием, то попробуйте вообще от этого отказаться.
  • Internat.exe — индикатор раскладки клавиатуры — иногда бывает причиной «глюков», пользы в нём совсем немного, так что лучше тоже отключить.
  • «System Tray» (Systray.exe) — программа, формирующая некоторые значки в системной области панели задач, такие как регулятор громкости, индикатор расходования батарей для ноутбуков, статус PC-карт, планировщик задач, значок утилиты Quckres. Если вы не используете ни одну из этих программ, то желательно убрать из автозагрузки.
  • «PCHealth» (PSHSсhd.exe) и «StateMgr» (StateMgr.exe) — отвечают за System Restore, автоматическое обновление и ещё за некоторые новые службы в WindowsME — об этом чуть ниже.

Ну и, разумеется, вообще не следует увлекаться работающими в фоновом режиме программами, которые перед загрузкой чего-то сверхмощного, лучше предварительно выгрузить из памяти. Посмотрите, что находится в памяти компьютера, нажав кнопки CTRL-ALT-DEL, а ещё лучше — запустив утилиту, специально для этого предназначенную — Process Viewer [2] — она предоставит гораздо более полную картину занятости памяти. Избавиться же от загрузки всего лишнего опять поможет стандартное средство Windows98 — System Configuration Utility.

Кроме того, проверьте самостоятельно все места, где может быть записан запуск фоновых программ — это ключи реестра

  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
  • HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices

а также строки в файле WIN.INI:

[windows]
load=
run=

и, естественно, папку «Автозагрузка» меню «Пуск», файлы AUTOEXEC.BAT, CONFIG.SYS и WINSTART.BAT.

Любители бродить в Интернете могут пойти ещё на одну хитрость. Попробуйте, будучи подключенным к Мировой Сети, посмотреть запущенные процессы в окне статистики вашего файерволла AtGuard [3] или Norton Internet Security [4] (CTRL+ALT+DEL в данном случае не годится, если у вас нет файерволла, то используйте программу мониторинга запущенных процессов типа Process Viewer [2]) — вы, скорее всего, увидите некий MPREXE.EXE (WIN32 Network Interface Service Process), который не только занимает место в памяти, но и что-то делает с портами 139, 138, 137, протокола TCP/IP, которые, как известно, являются мечтой любого хакера. Программа эта отвечает за функционирование клиента сетей Microsoft и обычно не требуется при Dial-Up подключении к Интернету. Помимо ухудшения показателей безопасности, она иногда вызывает сбои и «глюки» ОС. Чтобы отключить её, необходимо открыть диалоговое окно «Сеть» («Network») Панели Управления, выбрать протокол TCP/IP и нажать кнопку «Свойства» («Properties») — на вкладке «Привязка» («Bindings») снимите галочку напротив клиента Microsoft Networks. Только не удаляйте совсем сам клиент в свойствах сети, иначе возникнут проблемы с запоминанием всевозможных паролей. Разумеется, если после отключения этой программы появились какие-либо трудности с выходом в Интернет, то придётся отменить все внесённые изменения.

WindowsME, оставаясь, по сути, лишь обновлённой Windows98, предъявляет, тем не менее, заметно большие требования к аппаратной конфигурации ПК. Во многом это обусловлено появившимися в ней глобальной службой защиты основных системных файлов System File Protection и механизмом восстановления работоспособности системы System Restore. Однако, функции эти теряют свою значимость после того, как вы полностью сконфигурировали Windows и установили все необходимые приложения, поскольку вероятность фатальной подмены или удаления системного файла сводится к нулю (вы сами не развлекаетесь на досуге удалением папки C:\Windows\System?). Так что, отключив их, вы не только высвободите ценную оперативную память и снизите загрузку процессора, но и очистите место на диске от папок _RESTORE с зарезервированными файлами. Для отключения System Restore откройте диалог «System Properties» («Свойства Системы»), перейдите на страницу «Perfomance» («Быстродействие») далее — «File System» («Файловая система») — «Troubleshooting» («Неполадки») и установите флажок «Disable System Restore» («Отключить System Restore»). Чтобы выключить System File Protection, придётся исправить в разделе реестра

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VxDMon

параметр «SystemFileProtection», присвоив ему значение «N» (рядом строка и для System Restore). Параллельная отмена ещё и автозагрузки утилит «PCHealth» и «StateMgr» с помощью MSCONFIG.EXE приведет к более глубокому результату, так как помимо собственно системы защиты ОС не будет работать и автоматическое обновление Windows. Впрочем, перед отключением этих функций попробуйте сначала определить эффективность их функционирования, активизировав выдачу специальных окон-предупреждений в моменты срабатывания System File Protection — для этого установите такой параметр в реестре:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SystemFileProtection
"ShowPopups"=dword:00000001

Да и загляните в протокол уже проделанной работы в файле C:\Windows\System\Sfp\Sfplog.Txt.

Просто нереальные требования предъявляют к вашему компьютеру всяческие детские «фитюльки», вряд ли играющие какую-нибудь положительную роль:

  1. Анимационные эффекты при сворачивании окон, раскрытии списков и меню — отключите их с помощью диалога «Свойства Дисплея» («Display Properties») — вкладка «Эффекты» («Effects»), либо получите более избирательный и полный доступ к настройкам спецэффектов, воспользовавшись утилитой TweakUI [5] — вкладка «General».
  2. Обои рабочего стола — занимают кучу места в памяти, при этом надоедают уже через неделю, заставляя юзера устраивать на Рабочем Столе подобие сильно заторможенного слайд-шоу — тоже откажитесь от их использования в «Свойствах Дисплея».
  3. Active Desktop («Активный Рабочий Стол») — ещё одно совершенно лишнее на слабых машинах украшательство, из-за которого даже загрузка системы может происходить гораздо медленнее, если для фона используется какая-нибудь сложная веб-страничка — также отключается в «Свойствах Дисплея».
  4. Отображение папок в окнах «Проводника» как Web-страниц — очередное спорное нововведение, хотя и очень приятное, если позволяет мощность компьютера — отключается в «Свойствах Папок».
  5. Звуковые схемы — единственная, пожалуй, ценная вещь, которая призвана привлекать внимание пользователя к разным системным событиям, и её стоит отключать в самую последнюю очередь — в диалоге Панели Управления «Sounds» («Звуки»).

В процессе работы Windows захламляет оперативную память, сохраняя там подчас уже не нужные данные, на выгрузку которых тратится драгоценное время при старте какого-нибудь мощного приложения. Всю эту информацию можно заранее принудительно сбросить в свап-файл, являющийся виртуальной составляющей всей памяти вашего компьютера. Для этого стоит попробовать использовать небольшую утилиту FreeMem Pro [6]. Если разрешить ей работать в фоновом режиме, то память будет регулярно высвобождаться автоматом. Ещё один способ подчистки «хвостов» давно закрытых приложений из памяти заключается в автоматической выгрузке неиспользуемых библиотек общего пользования самой операционной системой. Правда, после этого появляется небольшая вероятность нестабильной работы некоторых программ, и если вы это обнаружите на своем компьютере, придётся вернуться к исходному варианту. Для включения этой функции необходимо добавить в реестр параметр:

[HKEY_LOCAL_MACHINE \Software\Microsoft\Windows\CurrentVersion\explorer\AlwaysUnloadDLL]
@="1"

Безопаснее и удобнее применить для этого программу WinBoost [7] 2001 Gold, в которой для включения функции выгрузки библиотек достаточно установить всего один флажок «Unloand unused shell extensions» на вкладке «2nd Misc».

Перед работой с мощной программой, требующей много­мега­байтной «оперативки», попробуйте пойти на небольшой трюк, ограничив объём памяти, выделяемой системой под дисковое кэширование. Это, правда, может замедлить загрузку программы из-за ухудшения работы «виндовой» системы кэширования VCache, но во время работы с уже запущенной программой свободной памяти ей достанется немного больше. Для этого воспользуйтесь утилитой CacheMan [8], которая поможет грамотно определить объём кэша, необходимый для ваших нужд, ограничив его бесконтрольное разрастание. Кроме управления памятью, отводимой под кэширование дисковых операций, эта небольшая программа позволит задать объём памяти, предназначенной для кэширования путей к файлам и папкам. Безусловно, чем активнее используется «оперативка» под всевозможное кэширование, тем меньше активность диска — самого «тормознутого» компонента современной компьютерной системы, но при нехватке памяти для какого-нибудь приложения есть смысл сократить размеры кэша — работа с диском и файловой системой замедлится, свободной памяти же будет чуть больше.

На системах с большим количеством оперативной памяти очень заметный эффект увеличения быстродействия за счёт сокращения дисковых операций даёт возврат к способу управления свап-файлом, применявшемуся в Windows95. Дело в том, что в Windows98 свап-файл активно используется даже в том случае, когда оперативная память полностью не занята, что вряд ли следует назвать рациональным её расходованием, ведь скорость работы с виртуальной памятью на порядки ниже, чем с памятью реальной. Чтобы отключить и эту диверсию Microsoft, необходимо задать в файле System.ini параметр:

[386Enh]
ConservativeSwapfileUsage=1

При наличии 96 и более мегабайт «оперативки», после загрузки Windows объём свап-файла будет равен нулю!

Объём свободной оперативной памяти может резко уменьшиться при использовании буфера обмена, особенно если в нём хранится большая картинка, оставшаяся там после какого-нибудь «Фотошопа», поэтому не забывайте после работы с буфером в тяжёлых программных пакетах очистить его, скопировав всего одну букву из Блокнота, например.

В общем, почти со всеми проблемами, связанными с «прожорливыми» DOS-приложениями или конфликтами EMM386 с оборудованием, можно справиться, если хорошенько проштудировать учебник по DOS и «похимичить» со всевозможными параметрами и переключателями. Для того же, чтобы нормально поиграться в очередной Quake, рано или поздно всё-таки придётся, несмотря на полную очистку «оперативки» от внесённого создателями Windows хлама, копить, экономя на мороженом, «баксы» на покупку новых модулей памяти, только в этом случае любимые ненасытные «форточки» действительно смогут «летать» на вашей машине.




Темы