сказки про «полезные» оптимизаторы памяти
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

сказки про «полезные» оптимизаторы памяти

  • 1,513 views
Uploaded on

 

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,513
On Slideshare
1,504
From Embeds
9
Number of Embeds
2

Actions

Shares
Downloads
4
Comments
0
Likes
0

Embeds 9

http://komu-za-40.ucoz.kz 8
http://www.slideshare.net 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. СКАЗКИ ПРО «ПОЛЕЗНЫЕ» ОПТИМИЗАТОРЫ ПАМЯТИ Сергей ПахомовНас так часто обманывают, что мы к этому уже привыкли и не доверяем никому иничему. Ложь рекой льется с экранов телевизоров, из уст высокопоставленныхчиновников, в центральной прессе то и дело появляются проплаченные заказные статьи сявной неправдой, а уж про ненадлежащую рекламу и говорить не приходится. Вспомнимхотя бы страшилки про птичий грипп, которые внезапно возникли и так же неожиданно,подчиняясь чьей-то искусной дирижерской палочке, исчезли. Или про отравленноегрузинское и молдавское вино. В результате эти вина исчезли с прилавков магазинов, авместо них нам предложили довольствоваться дешевым вином из других стран, котороекак нельзя лучше соответствует слову «бормотуха». Примеры такого «гуманизма»встречаются на каждом шагу. «Но при чем здесь программное обеспечение икомпьютеры?» — спросите вы. Все очень просто: принцип «обмани и получи выгоду»нередко применяется и в области программного обеспечения. Наряду с полезнымипрограммами пользователям нередко (причем за деньги) предлагают и откровенныепустышки, которые, по заявлениям производителей, способны в разы увеличитьпроизводительность системы. В лучшем случае они не навредят, а в худшем — вместообещанного увеличения производительности приведут к обратному эффекту.Классическим примером такого рода программ являются оптимизаторы оперативнойпамяти, которые и будут рассмотрены в настоящей статье. Принцип, которым руководствуются компании, предлагающие оптимизаторы памяти,достаточно прост и неоригинален. Надо заставить пользователя поверить вчудодейственные возможности утилиты и убедить его, что использование оптимизаторапамяти позволит и решить проблему нехватки памяти, и повысить производительностьПК. Сделать это не так уж сложно, особенно если речь идет о неискушенномпользователе. Алгоритм убеждения примерно таков. Прежде всего необходимо убедитьпользователя, что операционная система Windows XP далека от идеала. Учитываяпостоянную критику в адрес Microsoft, сделать это легко (тем более что в этом есть доляистины), ну а для пущей убедительности можно напомнить о регулярном появлении такназываемых заплаток и обновлений к операционной системе. Далее нужно убедитьпользователя, что исправить недочеты операционной системы можно с помощьюсторонних утилит (факт достаточно спорный, хотя отчасти он соответствуетдействительности). В качестве примера можно привести множество сторонних утилит (теже дефрагментаторы), которые по некоторым характеристикам лучше встроенных воперационную систему. Ну а если все это «приправить» научными терминами об утечкеоперативной памяти, о необходимости ее дефрагментации и о неоптимизированныхалгоритмах выделения оперативной памяти процессам (главное при этом — окончательнозапудрить мозги специфическими терминами), то необходимость использованиясторонних оптимизаторов памяти (наделенных интеллектуальными, продвинутымиалгоритмами слежения за состоянием памяти, позволяющих оптимизировать еераспределение и проводящих в случае необходимости автоматическую дефрагментацию)становится просто очевидным фактом. На сфабрикованную таким образом утку кто-нибудь да клюнет. Причем, как показываетпрактика, клюют многие. Чтобы доказать пользователю необоснованность приведенных выше рассуждений,необходимо сначала рассказать, каким образом операционная система Windows XPраспределяет оперативную память.
  • 2. ОРГАНИЗАЦИЯ ПАМЯТИ В WINDOWS XP В любой момент компьютер выполняет сразу несколько процессов (или задач), каждыйиз которых располагает своим адресным пространством. Было бы слишком накладноотдавать всю физическую память какой-то одной задаче, тем более что многие из нихреально используют только небольшую часть своего адресного пространства. Поэтомунеобходим механизм разделения небольшой физической памяти между различнымизадачами. Кроме того, уже давно существует проблема размещения в памяти программ,размер которых превышает размер доступной физической памяти. Одним из способов разделения физической памяти между различными процессами иразмещения в памяти программ, размер которых превышает размер доступнойфизической памяти, является использование технологии виртуальной памяти (virtualmemory), которая впервые была реализована в 1959 году на компьютере «Атлас»,разработанном в Манчестерском университете. Однако популярной технологиявиртуальной памяти стала лишь спустя десятилетия. Виртуальная память делит физическую память на отдельные блоки и распределяет ихмежду различными задачами. При этом она предусматривает некоторую схему защиты,которая ограничивает задачу теми блоками, которые ей принадлежат. Кроме того,виртуальная память позволяет объединить (с точки зрения программ) физическуюоперативную память компьютера и внешнюю память (например, память жесткого диска). Системы виртуальной памяти можно разделить на три класса: системы с фиксированным размером блоков, называемых страницами, — страничная организация памяти; системы с переменным размером блоков, называемых сегментами, — сегментная организация памяти; комбинированные системы с сегментно-страничной организацией памяти. В настоящее время актуально говорить только о сегментно-страничной организациипамяти, однако для лучшего понимания этого способа мы рассмотрим также страничнуюи сегментную организацию памяти. СТРАНИЧНАЯ ОРГАНИЗАЦИЯ ПАМЯТИ В случае страничной организации памяти и виртуальная и физическая памятьпредставляются в виде набора неперекрывающихся блоков одинакового размера,называемых страницами. Передача информации (считывание, запись) всегдаосуществляется целыми страницами. При страничной организации виртуальный адрес памяти требуемого элемента задаетсяв виде номера страницы и смещения относительно начала страницы. Любой выполняемыйпроцесс (программа) имеет дело только с виртуальными адресами и не знает физическихадресов данных, с которыми работает. Для преобразования виртуальных адресов вфизические используются таблицы страниц (page table), размещаемые в оперативнойпамяти. Важно, что каждому процессу соответствует собственная таблица страниц. Преобразование логических (виртуальных) адресов в физические происходитследующим образом. Когда какой-либо выполняемый процесс обращается повиртуальному адресу, в котором содержится информация о номере требуемой страницы исмещении в пределах страницы, происходит обращение к таблице страниц этого процесса,в которой каждому номеру страницы поставлен в соответствие физический адресстраницы в памяти.
  • 3. Таким образом, по номеру страницы определяется физический адрес этой страницы впамяти. Далее с учетом известного смещения в пределах требуемой страницыопределяется физический адрес искомого элемента памяти (рис. 1). Рис. 1. Связь логического и физического адресов при страничной организации памяти Любой процесс может выполняться только в том случае, если используемые имстраницы памяти размещаются в оперативной памяти. При отсутствии запрашиваемойстраницы в оперативной памяти возникает исключительная ситуация — страничноенарушение (page fault). Тогда затребованная страница подкачивается из внешней памяти(своп-файла) в свободный страничный кадр физической памяти, а при отсутствиисвободных страничных кадров в оперативной памяти первоначально в своп-файлвыгружается мало используемая страница памяти. При страничной организации памяти может возникать проблема ее внутреннейфрагментации (внешней фрагментации в данном случае принципиально не существует).Внутренняя фрагментация памяти происходит по причине того, что адресноепространство процесса может занимать только целое число страниц, при этом некоторыестраницы заняты не полностью. Важно отметить, что при страничной организации памяти любому процессу доступналишь та физическая память, которая ему соответствует, и не доступна память другогопроцесса, поскольку процесс не имеет возможности адресовать память за пределами своейтаблицы страниц, включающей только его собственные страницы. СЕГМЕНТНАЯ ОРГАНИЗАЦИЯ ПАМЯТИ Понятие сегментированной памяти связано с необходимостью разделения хранимых впамяти данных между различными процессами. Именно в этом заключается главноеотличие сегментированной организации памяти от страничной. Участки памяти, хранящие однородные данные, которые доступны несколькимпроцессам, называются сегментами. Каждый сегмент представляет собой отдельнуюлогическую единицу информации, содержащую совокупность данных или программ ирасположенную в адресном пространстве пользователя. Сегменты создаютсяпользователями, которые могут обращаться к ним по символическому имени. В каждомсегменте устанавливается собственная нумерация слов начиная с нуля.
  • 4. При сегментной организации памяти каждый сегмент определяется двумя величинами:именем сегмента и смещением. В отличие от страниц, разные сегменты могут иметьразличные размеры, причем размер сегмента может меняться динамически. Точно так же, как и при страничной организации, при сегментной организации памятидля преобразования виртуального адреса требуемого элемента в физический адресиспользуются таблицы сегментов. В таблице сегментов, помимо физического адресаначала сегмента, содержится также длина сегмента. Преобразование логических адресов вфизические происходит следующим образом. Когда выполняемый процесс обращается повиртуальному адресу, происходит обращение к таблице сегментов, что позволяетопределить физический адрес требуемого сегмента. Используя информацию о смещении впределах сегмента, можно определить физический адрес искомого элемента (рис. 2). Рис. 2. Преобразование логического адреса при сегментной организации памяти СЕГМЕНТНО-СТРАНИЧНАЯ ОРГАНИЗАЦИЯ ПАМЯТИ Сегментная организация памяти в чистом виде не встречается и в этом смыслеинтересна лишь в теоретическом аспекте. Как уже отмечалось, в операционных системахсемейства Windows используется комбинированная сегментно-страничная организацияпамяти. При сегментно-страничной организации памяти происходит двухуровневая трансляциявиртуального адреса в физический. В этом случае виртуальный адрес состоит из трехполей: номера сегмента виртуальной памяти, номера страницы внутри сегмента исмещения внутри страницы. Соответственно для преобразования виртуальных адресов вфизические применяются две таблицы: таблица сегментов, которая связывает номерсегмента с таблицей страниц и называется также таблицей каталогов страниц, и отдельнаятаблица страниц для каждого сегмента (рис. 3). При преобразовании виртуального адресаэлемента в физический адрес первоначально по номеру каталога страниц устанавливаетсятребуемая таблица страниц. Далее с использованием таблицы страниц и номера страницыопределяется физический адрес страницы, а зная смещение внутри страницы, можноопределить физический адрес искомого элемента.
  • 5. Рис. 3. Формирование физического адреса при сегментно-страничной организации памяти Главная особенность сегментно-страничной организации виртуальной памятизаключается в том, что при этом имеется возможность совместно применять одни и те жесегменты данных и программного кода в виртуальной памяти разных процессов,поскольку для совместно используемых сегментов поддерживаются общие таблицыстраниц. Далее мы рассмотрим 32-разрядные операционные системы (к коим относится иWindows XP) в совокупности с процессорами, поддерживающими 32-разряднуюадресацию памяти (современные 64-разрядные процессоры при применении 32-разряднойОС работают как 32-разрядные процессоры). При 32-разрядной адресации памяти объем виртуальной адресуемой памяти составляет232 = 4 Гбайт. При сегментно-страничной организации памяти адрес, как уже отмечалось,состоит из трех полей, которые определяют номер каталога страниц, номер страницы исмещение в пределах страницы. Для задания номера каталога и номера страницыиспользуется по 10 бит, а для задания смещения — оставшиеся 12 бит. В этом случаеподдерживается 210 =1 024 каталога страниц и 1024 страницы внутри каждого каталога, аобщее количество страниц может составлять 220 = 1 048 576. Учитывая, что для заданиясмещения внутри страницы применяется 12 разрядов адреса, нетрудно посчитать, чторазмер одной страницы составляет 212 = 4096 байт = 4 Кбайт. Рассмотрим более подробно отдельный элемент (запись) таблицы страниц (Page TableElement, PTE). Каждая запись таблицы страниц является 32-разрядной. Старшие пятьразрядов определяют тип доступа к странице (нет доступа, только чтение, чтение изапись). Следующие 20 бит задают физический адрес страницы в памяти. Если учесть, чтодля задания смещения в пределах страниц используется 12 бит, то в совокупности с 20битами, применяемыми для описания физического адреса страницы, получаем как раз 32-разрядную адресацию памяти. Следующие 4 бита в PTE определяют применяемый файлподкачки (один из 16 возможных), а последние 3 бита задают состояние страницы памяти.Первый из этих битов (T-бит, Transition) определяет, является ли страница переходной (T= 1) или нет (T = 0), второй бит (D-бит, Dirty) — была ли произведена в страницу запись(D = 1) или запись не проводилась (D = 0), последний бит (P-бит, Present) — находится листраница в оперативной памяти (P = 1) или же в файле подкачки (P = 0). Информация осостоянии страницы необходима для того, чтобы принять решение о сохранениистраницы в файле подкачки при ее вытеснении (принудительном освобождении занятойпамяти). Действительно, если страница не изменялась в памяти после загрузки, то ееможно просто стереть, ведь в файле подкачки сохранилась ее копия.
  • 6. ПРИНЦИП РАБОТЫ МЕНЕДЖЕРА ПАМЯТИ Для управления виртуальной памятью в операционной системе Windows предусмотренспециальный менеджер Virtual Memory Manager (VMM). Он является составной частьюядра операционной системы и представляет собой отдельный процесс, постояннонаходящийся в оперативной памяти. Основная задача VMM заключается в управлениистраницами виртуальной памяти. Каждому процессу (запущенному приложению) VMM выделяет часть физическойпамяти, которая называется рабочим набором (Working Set). Кроме того, VMM создаетбазу состояния страниц (page-frame database), которая организована как шесть списковстраниц одного типа. Выделяют следующие типы страниц: Valid — рабочая страница используется процессом. Такие страницы памяти реально существуют в физической памяти. Если процесс освобождает страницу памяти, то VMM убирает ее из списка Valid. Если процесс пытается обратиться к странице, которой нет в списке Valid, то генерируется ошибка (Page Fault) и VMM может отвести процессу новую страницу. Страницы типа Valid в таблице страниц описываются как присутствующие (P = 1); Modified — модифицированная страница, то есть страница, содержимое которой было изменено. В таблице страниц данные страницы отмечаются как отсутствующие (P = 0) и переходные (T = 1); Standby — резервная страница, содержимое которой не изменялось. В таблице страниц такие страницы отмечаются как отсутствующие (P = 0) и переходные (T = 1); Free — свободная страница, на которую не ссылается ни один рабочий набор и которой нет ни в одной таблице страниц. В список Free помещаются страницы, которые освободились после окончания процесса. Свободные страницы могут применяться, однако прежде они подлежат процедуре обнуления (заполнения нулями). Процедурой обнуления страниц занимается специальная подпрограмма менеджера памяти Zero Page Thread; Zeroed — пустая страница, которая является свободной и обнуленной. Такие страницы готовы к использованию любым процессом; Bad — страница, которая вызывает аппаратные ошибки и не может применяться ни одним процессом. Как уже отмечалось, если какой-нибудь процесс обращается к странице, которой нет врабочем наборе (в списке Valid), то возникает ошибка обращения к странице. В этомслучае задача VMM заключается в том, чтобы разрешить данную конфликтную ситуациюи выделить страницу свободной физической памяти для хранения данных, к которымобратился процесс. Существует несколько способов решения данной конфликтнойситуации. Во-первых, VMM может расширить рабочий набор процесса, добавив к немунеобходимую страницу. Однако если в памяти нет места для выделения дополнительныхстраниц, то VMM замещает страницу, находящуюся в рабочем наборе, новой страницей.Понятно, что в идеале замещению должна подлежать та страница, к которой в будущем небудет обращений, или страница, которая не будет использоваться дольше других. Однакодостоверного способа определить, какая именно страница отвечает перечисленнымкритериям, нет. Поэтому менеджер памяти применяет следующий хитроумный алгоритм.Он периодически просматривает список рабочих страниц (Valid) и помечает их какотсутствующие (P = 0). Однако данные страницы не удаляются из рабочего процесса —они остаются на месте и просто переводятся из категории Valid в категориюмодифицированных (Modified) или резервных (Standby) страниц (естественно, никакихизменений в содержимом этих страниц не производится). Если измененная таким образом
  • 7. страница требуется какому-нибудь процессу, то происходит обращение к ней и возникаетошибка обращения к странице. Но поскольку в действительности страница находится вфизической памяти и ее содержимое не подвергалось изменению, то менеджеру памятидостаточно просто перевести данную страницу обратно в категорию Valid, сделав еедоступной для процесса. Если же страница не используется в течение длительноговремени процессами, то обращений к ней не происходит и она со временем переводится вкатегорию свободных (Free) страниц, а затем обнуляется и переводится в категориюпустых (Zeroed) страниц. Таким образом, менеджер памяти автоматически забирает страницы из рабочих наборовнеактивных процессов, то есть процессы, не проявляющие активности в течениедлительного времени, автоматически освобождают всю физическую память. На рис. 4 показаны переходы между различными категориями (списками) страниц. Рис. 4. Переходы между различными категориями страниц памятиФОКУСЫ ОПТИМИЗАТОРОВ ПАМЯТИ После того как мы разобрались с основами организации памяти и принципамифункционирования менеджера памяти в операционных системах семейства Windows,самое время рассмотреть, каким образом с помощью оптимизаторов памяти можноувеличить объем доступной (Available) физической памяти. Для операционной системыдоступной памятью является сумма пустых (Zeroed), свободных (Free) и резервных(Standby) страниц. Прежде всего отметим, что ни один оптимизатор памяти не может подменить собойменеджера памяти, который, как уже говорилось, является частью ядра операционнойсистемы. Поэтому единственное, что может сделать оптимизатор памяти, — этовмешаться в работу менеджера памяти. Итак, рассмотрим первую возможность, предоставляемую всеми оптимизаторамипамяти, — увеличение доступной памяти. Достигается это следующим образом.Оптимизатор памяти, как и любая программа, является процессом, которому менеджерпамяти выделяет свой рабочий набор. Оптимизаторы памяти ведут себя весьма агрессивнои требуют под свои нужды выделения все новых и новых страниц, то есть постояннорасширяют свой рабочий набор. Сделать это нетрудно — нужно лишь за короткое времяреализовать многочисленные обращения к несуществующим страницам памяти, что
  • 8. вызывает ошибки обращения. В ответ на возникающие ошибки обращения менеджерпамяти увеличивает рабочий набор оптимизатора сначала за счет доступной памяти, акогда лимит доступной памяти исчерпывается, расширение рабочего набора оптимизаторадостигается за счет механизма замещения страниц, осуществляемого менеджером памяти.То есть рабочие наборы всех остальных процессов уменьшаются, а рабочий набороптимизатора памяти увеличивается. После того как рабочий набор, выделяемый оптимизатору памяти, достигаеттребуемого значения (это значение можно задавать в оптимизаторах памяти), оптимизаторпамяти заканчивает свой процесс, высвобождая рабочий набор. В результате образуетсябольшое количество (заданное в настройках оптимизатора) доступной памяти. Описанный алгоритм увеличения доступной памяти, который используют всеоптимизаторы памяти, имеет одно существенное негативное последствие. Дело в том, что,во-первых, такая «оптимизация» памяти приостанавливает работу всех остальныхпрограмм (особенно если оптимизация происходит в автоматическом режиме), а во-вторых, в процессе замещения страниц происходит вытеснение страниц, принадлежащихразличным процессам, на жесткий диск ПК. После того как оптимизатор заканчиваетсвою работу, активным процессам, чьи рабочие наборы были вытеснены на диск,приходится повторно считывать данные с диска, что, конечно же, негативно сказываетсяна производительности ПК. Поэтому оптимизаторы памяти создают лишь иллюзию того,что они освобождают память, делая ее доступной. На самом деле, как только оптимизаторзаканчивает свою деятельность, менеджер памяти возвращает все к исходному состоянию,но достигается это за счет снижения производительности системы. Другой распространенный миф, связанный с оптимизаторами памяти, заключается втом, что эти утилиты якобы способны высвобождать память, занимаемую неактивнымипроцессами, и предотвращать утечку памяти. Однако если вспомнить алгоритм работыменеджера памяти, то становится понятно, что эту задачу решает именно менеджерпамяти, который автоматически высвобождает память неактивных процессов. Проблемаутечки памяти, которая возникает по причине того, что некоторые процессы не могуткорректно освободить память, также решается менеджером памяти, поскольку, как ужеотмечалось, память всех неактивных процессов постоянно высвобождается. И даже есликакой-то процесс остается незавершенным (хотя и неактивным), используемый имрабочий набор вытесняется в файл подкачки на жесткий диск. Последний фокус оптимизаторов памяти связан с ее дефрагментацией. Дефрагментацияпамяти действительно присутствует, поскольку является побочным эффектомвысвобождения большого (причем сплошного) объема памяти. Однако есть одномаленькое «но»! Все дело в том, что сплошной объем памяти является виртуальным, аинформация о том, как именно расположены в физической памяти соответствующиестраницы, остается недоступной оптимизатору памяти, поскольку соответствие междулогическими и физическими адресами страниц определяется уже на аппаратном, а не напрограммном уровне. В итоге, несмотря на то, что виртуальная памятьдефрагментируется, физическая память остается нетронутой, а значит, и толку от такогорода дефрагментации нет никакого.ПРАКТИЧЕСКИЕ ПРИМЕРЫ После теоретического разоблачения оптимизаторов памяти перейдем к рассмотрениюпрактических примеров. Мы выбрали несколько популярных оптимизаторов памяти,которые легко можно найти в Интернете. Думается, их будет вполне достаточно, чтобыубедиться в никчемности подобных устройств. Для тестирования оптимизаторов памяти использовался ноутбук на базе мобильнойтехнологии Intel Centrino, оснащенный процессором Intel Pentium M (Dothan) с тактовойчастотой 1,6 ГГц и 512 Мбайт оперативной памяти DDR400.
  • 9. Прежде чем приступать к рассмотрению того, как различные оптимизаторы влияют напроизводительность системы, проведем простой эксперимент, демонстрирующийдействие менеджера памяти, входящего в состав операционной системы Windows XPProfessional SP2. Загрузим ноутбук и запустим Windows Task Manager, который позволяетконтролировать объем доступной памяти (Avaliable). В нашем случае после загрузкиоперационной системы объем доступной памяти составляет 334 000 Кбайт (рис. 5). Рис. 5. Объем доступной памяти после загрузки операционной системы Далее последовательно загрузим несколько приложений: документ Word, AdobePhotoshop CS2 c фотографией размером 3 Мбайт, утилиту Paint и приложение Solid Works2005 c загруженным проектом. После открытия всех указанных приложений, которые впервый момент воспринимаются операционной системой как активные, размер доступнойпамяти уменьшается до 47 300 Кбайт (рис. 6).
  • 10. Рис. 6. Объем доступной памяти после загрузки приложений Теперь сделаем приложения неактивными (для этого просто не будем производитькаких-либо действий с компьютером) и понаблюдаем за изменением доступной памяти спомощью утилиты Windows Task Manager. Уже через 10 минут «бездействия» объемдоступной памяти достигнет 311 500 Кбайт, то есть станет почти таким же, как и в случаезагрузки операционной системы без указанных приложений. Данный пример доказывает,что менеджер памяти автоматически регулирует объем доступной памяти, изымая ее унеактивных процессов. Для того чтобы продемонстрировать пагубное влияние оптимизаторов памяти,воспользуемся бенчмарком PCMark05. Все подтесты, входящие в этот тест, нам непотребуются, поскольку в данном случае нас не интересует производительность жесткогодиска, графической подсистемы или латентность памяти. Мы выберем лишь подтесты,нуждающиеся в большом объеме оперативной памяти. Понятно, что эти подтесты должныбыть многозадачными, поскольку в данном случае мы имеем несколько активныхпроцессов, для каждого из которых в оперативной памяти создается свой рабочий набор.В бенчмарке PCMark05 многозадачными являются три подтеста: Multithreaded Test 1,Multithreaded Test 2 и Multithreaded Test 3. Поскольку практически все оптимизаторы памяти позволяют задавать размердоступной памяти, по достижении которого автоматически начинается процедуравысвобождения доступной памяти, мы установим данный барьер на уровне 220 000 Кбайти попробуем запустить при этом тест PCmark05. Изменение размера доступной памятиконтролируется с помощью утилиты Windows Task Manager. В первом подтесте объем доступной памяти не ниже 210 000 Кбайт, во второмподтесте — не ниже 260 000 Кбайт, а в третьем — не ниже 214 000 Кбайт. Понятно, чтодля того, чтобы в ходе теста автоматически активировался оптимизатор памяти,необходимо выбрать барьер доступной памяти на уровне примерно 250 000 Кбайт. В этом
  • 11. случае в ходе выполнения первого и третьего подтестов будет активизироватьсяоптимизатор памяти. DRAMATIC V 8.1 Утилиту dRAMatic v 8.1 можно смело отнести к разряду классических оптимизаторовпамяти. Она позволяет производить дефрагментацию оперативной памяти, хотя на самомделе под этим понимается просто высвобождение доступной памяти как в ручном, так и вавтоматическом режиме. В последнем случае имеется возможность указать размердоступной памяти, по достижении которого оптимизатор автоматически начинает процессее высвобождения. Как выяснилось в ходе тестирования, утилита не слишком агрессивнаи не представляет угрозы для активных процессов, которые активно утилизируютпроцессор. Так, отобрать страницы памяти у активных процессов в первом и второмподтестах утилита оказалась не в состоянии и ее автоматический запуск нереализовывался при достижении установленного барьера доступной памяти. В этомсмысле данную утилиту можно было бы классифицировать как безвредную ибесполезную. CLEAN RAM 1.21 Данная утилита отличается крайне простым интерфейсом и практически не имеетнастроек. Автоматический режим работы утилиты не предусмотрен. Единственное, чтоможно сделать с ее помощью, — это в ручном режиме высвободить заданное количестводоступной оперативной памяти. Кроме того, данная утилита показывает объем доступнойпамяти. Поэтому, если не нажимать на кнопку Clean RAM now (приступить квысвобождению памяти), утилиту Clean RAM 1.2 можно считать вполне безобидной. FAST DEFRAG 2.3 Утилита FAST Defrag 2.3 поддерживает множество языков, в том числе и русский. Онаработает как в ручном, так и в автоматическом режиме. В ручном режиме можно указатьобъем высвобождаемой памяти. Автоматический режим работы утилиты предусматриваетнесколько возможных настроек. Так, можно задать автоматическую очистку памяти придостижении заданного значения загрузки процессора (от 1 до 99%), при достижениизаданного значения загрузки памяти (от 1 до 100%) и при достижении заданного значениеоставшейся свободной памяти (от 1 до 25%). Кроме того, имеется возможность задатьавтоматическую очистку памяти при старте утилиты. При тестировании утилиты FAST Defrag 2.3 с помощью бенчмарка PCMark05выяснилось, что достичь объема оставшейся свободной памяти в 25% не удается, поэтомудля автоматического запуска утилиты мы применяли критерий загрузки процессора,установив порог, равный 99%. Данный уровень загрузки процессора достигается во всехтрех подтестах бенчмарка PCMark05, поэтому формально автоматическая очистка памятидолжна была бы запускаться в каждом из подтестов. Но выяснилось, что утилита не такаяуж и агрессивная и что при загрузке процессора в 100% она не может начать оптимизациюпамяти. Поэтому действие этой утилиты никак не отражалось на результатах теста. В целом же можно констатировать, что FAST Defrag 2.3 — это еще один совершеннобесполезный (правда, и безвредный) оптимизатор памяти. FREERAM XP PRO 1.52 Данную утилиту можно отнести к разряду продвинутых и весьма вредоносныхоптимизаторов памяти.
  • 12. Как и большинство оптимизаторов памяти, FreeRAM XP Pro 1.52 может запускаться какв ручном, так и в автоматическом режиме. Отличительной его особенностью являетсябольшое количество всевозможных настроек, создающих иллюзию полезности решения. В ручном режиме можно задать размер доступной памяти, которая должна бытьвысвобождена. Естественно, это не означает, что при оптимизации указанный размербудет достигнут. Для запуска утилиты в автоматическом режиме предусмотрена масса настроек, которыеопределяют критерии запуска. Так, можно настроить запуск оптимизатора черезопределенные временные интервалы или при достижении определенного значениядоступной памяти. Кроме того, можно настраивать условия запуска в зависимости отзагрузки процессора, временной интервал ожидания перед запуском оптимизатора имногое другое. Как выяснилось в ходе тестирования, утилита ведет себя довольно агрессивно испособна начать оптимизацию памяти даже при 100% загрузке процессора. Естественно,что в этом случае производительность в тесте падает. Во-первых, оптимизатор памятипостоянно запускается, утилизируя процессор, а во-вторых, из-за высвобождениядоступной памяти происходит постоянное вытеснение рабочих наборов активныхпроцессов на жесткий диск и их последующая подкачка. Собственно, именно это и можнонаблюдать по результатам теста, которые значительно ухудшаются. MEMORY OPTIMIZER 2002A Оптимизатор Memory Optimizer 2002a имеет простой интерфейс и как и большинствооптимизаторов памяти, допускает как ручную, так и автоматическую оптимизациюпамяти. Возможности настройки оптимизатора вполне типичны. При настройкеавтоматического режима необходимо указать критерии запуска утилиты. В ходе тестирования выяснилось, что утилита ведет себя весьма агрессивно и способнавысвобождать память даже при 100% загрузке процессора. Естественно, такая агрессия вотношении активных процессов отрицательно сказывается на результатах теста. MEMTURBO 2 MemTurbo 2 — еще один оптимизатор памяти, который можно отнести к разрядубезвредных. Оптимизатор обладает красивым графическим интерфейсом, а объемдоступной памяти отображает в графическом виде. Данная утилита допускает работуоптимизатора в ручном и автоматическом режимах и предлагает большое количествонастроек. В частности, предусмотрено множество настроек для автоматического запускаоптимизатора. Как выяснилось в ходе тестирования, настройка утилиты на автоматический запуск покритерию достижения заданного размера оставшейся доступной памяти не сказывается нарезультатах теста. Дело в том, что, несмотря на выполнение критерия автозапуска, при100% загрузке процессора оптимизация памяти не начинается. Поэтому данная утилита неоказывала влияния на действие активных процессов в ходе тестирования. В целом можно отметить, что данная утилита не является агрессивной и в этом смыслебезобидна, но и бесполезна (впрочем, как и все оптимизаторы памяти). RAM IDLE PROFESSIONAL 3.4 Утилиту RAM Idle Professional 3.4 можно отнести к разряду твикеров операционнойсистемы, но, поскольку одно из центральных мест в ней занимает оптимизатор памяти, мырешили рассмотреть ее в нашем обзоре.
  • 13. По возможностям настройки оптимизатор RAM Idle Professional 3.4 отличается отдругих тем, что в нем не предусмотрено ручного режима оптимизации. При настройкеавтоматического режима допускается указание критического размера доступной памяти.Кроме того, можно настроить автоматическую оптимизацию после старта программычерез заданный интервал времени, а также автоматический запуск оптимизации череззаданные временные промежутки. В последнем случае можно указать, какой объемпамяти требуется освободить в процессе оптимизации. Тестирование оптимизатора RAM Idle Professional 3.4 показало, что данная программаведет себя довольно агрессивно. Оптимизация памяти происходит даже при 100%нагрузке на процессор, что, естественно, отрицательно сказывается на результатах теста.ВЫВОДЫ Рассмотрение оптимизаторов памяти можно было бы продолжать и далее. Однако,думается, в этом нет необходимости. Все оптимизаторы построены по одному и тому жепринципу и отличаются лишь интерфейсом, настройками и своей агрессивностью. Менееагрессивные оптимизаторы не приносят особого вреда (как, впрочем, и пользы), аиспользование агрессивных оптимизаторов может привести к падениюпроизводительности системы. Нужны ли утилиты, создающие иллюзию того, что за счетих применения увеличивается производительность ПК, — решать вам. КомпьютерПресс 62006