Windows 7 против Windows 8
Производительность операционной системы
Выяснять, какая операционная система лучше — Windows 7 или Windows 8, — абсолютно бессмысленное занятие. Речь и не идет о проблеме выбора операционной системы. У Windows-пользователей вообще никогда не было альтернативы, и после выхода Windows 8 все на нее рано или поздно перейдут.
Тем не менее интересно было бы сравнить Windows 7 и Windows 8 по производительности. Поясним, что имеется в виду.
Производительность операционной системы
Предположим, что на одном и том же компьютере один раз устанавливается операционная система Windows 7, а другой — Windows 8 и запускается одна и та же задача. К примеру, это может быть скрипт по обработке цифровой фотографии, конвертирование видеофайла или нечто подобное. Если эта задача быстрее выполняется на компьютере с операционной системой Windows 7, то можно сделать вывод, что в данном случае Windows 7 более производительна, чем Windows 8. Таким образом, при неизменной конфигурации компьютера и набора используемых приложений с производительностью ОС можно однозначно связать время выполнения определенной задачи.
Проблема в том, что при таком подходе к понятию производительности ОС можно говорить лишь о производительности для данной конфигурации компьютера и для конкретной задачи. И из того факта, что для какойлибо конфигурации ПК одна операционная система оказывается более производительной, чем другая, еще нельзя сделать однозначный вывод, что и для иной конфигурации ПК будут получены аналогичные результаты. То же самое касается и выводов в отношении сравнения производительности ОС при использовании разных задач. То есть тот факт, что для решения какойлибо задачи одна операционная система оказывается более производительной, чем другая, еще не позволяет сделать вывод, что при решении иной задачи будут получены аналогичные результаты.
Еще одна проблема, связанная с определением производительности ОС, заключается в том, что иногда для разных операционных систем используются различные версии приложений. Поэтому сравнить производительность любой операционной системы, например Windows с аналогичной Mac OS, невозможно. Непонятно, что в данном случае сравнивается — быстродействие операционных систем или приложений для них. Благо, при сопоставлении операционных систем одного семейства (например, Windows 7 и Windows 8) такая проблема не возникает, поскольку, как правило, все приложения, поддерживающие Windows7, работают и с Windows 8.
Различные версии драйверов устройств для разных операционных систем — это тоже влияет на определение производительности ОС. Впрочем, в случае операционных систем Windows 7 и Windows 8 такая проблема не стоит, поскольку драйверы в этих системах для большинства устройств одинаковые. И самое главное — для них используется один и тот же видеодрайвер.
Итак, после того, как мы определили, что понимать под производительностью ОС и какие проблемы с этим связаны, можно попытаться сформулировать основные требования, которые необходимо соблюдать при сравнении производительности ОС.
Для корректного сравнения производительности ОС требуется использовать компьютер с неизменной аппаратной конфигурацией. Кроме того, для получения более объективной картины желательно провести сравнение в различных вариантах конфигурации ПК. К примеру, сначала производить сравнение, используя топовую конфигурацию компьютера, а затем — компьютер начального уровня.
Особое внимание следует уделить подбору бенчмарков (тестов) для тестирования. Вопервых, они должны быть полностью совместимы с обеими операционными системами. Вовторых, для сравнения производительности ОС необходимо отобрать бенчмарки, которые позволили бы оценить ее в целом, а не отдельных частей. Поэтому следует отказаться от синтетических тестов, минимизирующих влияние операционной системы на результаты тестирования и оценивающих производительность отдельных подсистем компьютера, таких как процессор, память и жесткий диск. Кроме того, желательно, чтобы используемые бенчмарки основывались на реальных приложениях и позволяли оценивать производительность по различным категориям приложений. Например, в идеальном варианте бенчмарк должен оценивать производительность системы при работе с офисными приложениями, с 3D-приложениями, с приложениями по созданию контента и т.д. В данном случае результаты сравнения производительности ОС можно не привязывать к конкретному приложению, а распространить на категории приложений или задач.
В-третьих, бенчмарки должны демонстрировать стабильные результаты, которые имеют хорошую повторяемость.
Проблема повторяемости результатов в операционных системах Windows 7 и Windows 8 (как и в более ранних версиях) заключается в том, что эти операционные системы являются самонастраивающимися и обладают такой замечательной функцией, как динамическая подстройка (динамический тюнинг) под различные сценарии использования приложений. С точки зрения обычного пользователя, данная функция очень полезна, однако при тестировании производительности системы она негативно сказывается на стабильности результатов тестирования, что следует учитывать.
Самонастройка операционной системы Windows происходит всякий раз при инсталляции и запуске нового приложения. Именно поэтому результаты тестирования, полученные после первого запуска теста, и результаты того же теста, полученные через день при последующих запусках на том же самом компьютере, могут различаться — в силу самонастройки операционной системы результаты, полученные позднее, будут выше.
Под динамической самонастройкой операционной системы Windows понимается реализация таких функций, как оптимизация размещения файлов на жестком диске (Disk Efficiency Optimizations), оптимизация загрузки операционной системы (Boot Prefetching) и оптимизация загрузки приложений (Application-Launch Prefetching).
Под оптимизацией размещения файлов на жестком диске понимают следующее. Физическое размещение файлов на жестком диске может оказать ощутимое влияние на производительность системы. Операционная система Windows постоянно наблюдает за сценарием доступа к файлам на жестком диске и раз в три дня в фоновом режиме производит оптимизацию размещения файлов, чтобы ускорить доступ к ним. Информация о наиболее часто используемых файлах сохраняется в директории операционной системы в папке Prefetch (%windir%\Prefetch), а просмотреть, какие файлы подлежат оптимизации размещения на жестком диске, можно в файле %windir%\Prefetch\Layout.ini, открыв его в текстовом редакторе.
Оптимизация размещения файлов заключается в том, что наиболее часто применяемые файлы размещаются, во-первых, вместе, а во-вторых, на краю диска (пластины), что обеспечивает более быстрый доступ к ним и тем самым увеличивает общую производительность системы. Напомним, что такие характеристики, как время доступа, время выборки и скорость линейного чтения (записи), зависят от физического местоположения данных на пластине жесткого диска.
Оптимизация размещения файлов на жестком диске становится особенно актуальной при применении больших по объему жестких дисков.
Отметим, что эта процедура, периодически производимая Windows в фоновом режиме, не подменяет собой процедуру дефрагментации. Поэтому периодическая необходимость в дефрагментации жесткого диска остается актуальной. При использовании встроенного в операционную систему дефрагментатора оптимизированная структура размещения файлов не нарушается.
Говоря об оптимизации размещения файлов на жестком диске следует иметь в виду, что данная процедура актуальна только для HDD. Если в системе используется SSD-накопитель, то оптимизация становится просто бессмысленной, а процедура дефрагментации — не только бессмысленной, но и вредной.
Оптимизация загрузки операционной системы (Boot Prefetching) заключается в повышении ее скорости. В данном случае операционная система отслеживает все файлы, которые требуются для загрузки операционной системы, и оптимизирует их размещение на жестком диске. Кроме того, в процессе загрузки операционной системы осуществляется предвыборка требуемых данных в оперативную память, то есть в нее заранее загружаются данные, к которым предположительно будет требоваться доступ. Важно отметить, что процедура Boot Prefetching начинается только после третьей перезагрузки операционной системы, когда накоплено достаточно информации для проведения оптимизации размещения файлов.
Оптимизация загрузки приложений (Application-Launch Prefetching) мало чем отличается от процедуры оптимизации загрузки операционной системы. Смысл ее заключается в том, что операционная система отслеживает все данные, используемые запускаемыми приложениями, и оптимизирует их размещение на жестком диске, а также реализует предвыборку этих данных для упреждающей загрузки в оперативную память. Отметим, что при первом запуске приложения предвыборка данных не осуществляется. Именно поэтому если речь идет о тестовом приложении (бенчмарке), то первый запуск теста может демонстрировать более низкие результаты, чем все последующие.
Кроме рассмотренных технологий динамической самонастройки операционной системы Windows, применяются и такие средства повышения производительности, как SuperFetch, ReadyBoost, ReadyBoot и ReadyDrive. Помимо этого имеется также функция индексирования файлов для обеспечения быстрого поиска нужной информации.
Технология SuperFetch является в какомто смысле развитием технологий Boot Prefetching и Application-Launch Prefetching. В технологии SuperFetch используется оптимизация размещения файлов на жестком диске вкупе с функцией упреждающего чтения этих файлов на основе отслеживаемой статистики доступа к данным. При этом учитывается история обращений к памяти за длительный период.
Функция SuperFetch выполняется в качестве службы Windows внутри процесса Service Host (%SystemRoot%\System32\Svchost.exe). Она отслеживает историю обращений к страницам памяти и отдает диспетчеру памяти указания по предварительной загрузке данных или кода из файлов на диске либо из файла подкачки в список ожидания, а также указания по присвоению приоритета страницам памяти. Служба SuperFetch существенно расширяет отслеживание страниц памяти, учитывая страницы, которые были ранее загружены в память, но впоследствии освобождены диспетчером памяти для других данных и кода. Эта информация хранится в папке %SystemRoot%\Prefetch в виде файлов сценариев с расширением *.db вместе со стандартными файлами упреждающего чтения, применяемыми для оптимизации запуска приложений. Располагая подробной информацией об использовании памяти, служба SuperFetch может осуществлять предварительную загрузку данных и кода при освобождении физической памяти.
Когда освобождается память (например, по завершении работы приложения или когда приложение освобождает выделенную память), служба SuperFetch дает диспетчеру памяти инструкцию загрузить недавно выгруженные данные и код. Эта процедура осуществляется со скоростью несколько страниц в секунду с приоритетом вводавывода Very Low (очень низкий), поэтому предварительная загрузка не мешает работе пользовательских и других активных приложений.
Технология ReаdyBoot предназначена для ускорения загрузки операционной системы и используется только в том случае, если в компьютере размер оперативной памяти превышает 700 Мбайт.
В технологии ReаdyBoot для оптимизации процесса загрузки операционной системы применяется специальный кэш в оперативной памяти, размер которого зависит от общего объема доступной оперативной памяти.
После каждой загрузки операционной системы в моменты простоя (Idle) специальная служба анализирует информацию об обращениях к файлам за пять предыдущих загрузок и определяет, к каким файлам производились обращения и где они расположены на диске. На основе этого анализа служба планирует кэширование для следующей загрузки системы. Обработанная информация об обращениях сохраняется в папке %SystemRoot%\ Prefetch\ReadyBoot, а план кэширования — в разделе реестра HKLM\System\ CurrentControlSet\Services\Ecache\Parameters.
Служба индексирования файлов (Indexing and Search Service) обеспечивает быстрый поиск различных документов, фотографий, почтовых сообщений и других данных. Она запущена по умолчанию и отслеживает изменение содержимого файловой системы NTFS. По умолчанию индексированию подлежит лишь часть пользовательских данных, причем служба индексирования запускается с низким приоритетом всякий раз, когда изменяется содержимое файловой системы.
Итак, главная проблема при тестировании систем с установленными операционными системами Windows заключается в обеспечении повторяемости его результатов с учетом функций динамической самонастройки этих операционных систем.
Существует два возможных сценария тестирования. Первый из них заключается в том, чтобы путем настройки операционных систем вообще запретить все функции динамической самонастройки. Сделать это действительно возможно. К примеру, можно запретить оптимизацию размещения файлов на диске путем внесения соответствующих настроек в реестр. Для этого нужно в разделе реестра HKLM\SOFTWARE\ Microsoft\Dfrg\BootOptimizeFunction присвоить ключу Enable значение N (по умолчанию значение параметра равно Y). Для того чтобы запретить функции предвыборки данных, необходимо внести изменения в раздел реестра HKLM\SYSTEM\CurrentControlSet\Control\ SessionManager\MemoryManagement\ PrefetchParameters, присвоив ключу EnablePrefetcher значение 0. По умолчанию значение данного ключа равно 3, что означает разрешение предвыборки данных как для операционной системы, так и для приложений. Значение ключа 1 соответствует разрешению предвыборки данных для приложений, значение ключа 2 — предвыборке данных для операционной системы. Более того, можно остановить и заблокировать службу SuperFetch.
Кроме того, после внесения всех необходимых изменений следует очистить содержимое папок %SystemRoot%\Prefetch и %SystemRoot%\Prefetch\ReadyBoot.
Несмотря на теоретическую возможность запрета функций динамической самонастройки операционных систем Windows, делать это не нужно, поскольку в таком случае тестирование производится без учета очень важных функциональных возможностей операционных систем и полученные таким образом результаты вряд ли актуальны. Кроме того, хотя функции динамической самонастройки и реализованы в операционных системах Windows 7 и Windows 8 немного по-разному, не учитывая их, вряд ли можно корректно сравнить производительность этих операционных систем. Поэтому более правильно использовать второй сценарий проведения тестирования, который учитывает все возможности операционных систем по динамической самонастройке.
В данном случае методику проведения тестирования можно разбить на три этапа: подготовка, обучение системы и получение результатов тестирования.
Этап подготовки заключается в установке операционной системы, всех драйверов и обновлений, а также необходимых бенчмарков и приложений.
На этапе обучения системы производится сбор и анализ необходимых для самонастройки операционной системы данных. Для этого производится очистка папок %SystemRoot%\Prefetch и %SystemRoot%\Prefetch\ReadyBoot, после чего осуществляется троекратная перезагрузка операционной системы и запускается пробный прогон бенчмарка. Затем принудительно завершаются все фоновые процессы с помощью команды Rundll32.exe advapi32.dll,ProcessIdleTasks. По завершении выполнения этой команды будет произведена оптимизация размещения файлов на жестком диске на основе накопленной информации. На последнем этапе, в случае HDD-диска, необходимо произвести его дефрагментацию.
Важно отметить, что если при тестировании применяется не один, а несколько бенчмарков, то использование каждого нового бенчмарка необходимо начинать с этапа обучения, то есть с очистки папок %SystemRoot%\Prefetch и %SystemRoot%\Prefetch\ReadyBoot.
Методика тестирования
Итак, после определения требований, предъявляемых к бенчмаркам, и изложения общих принципов проведения тестирования можно перейти к рассмотрению методики сравнения производительности операционных систем Windows 7 и Windows 8.
Поскольку эра 32-битных операционных систем уже закончилась, мы их даже не рассматривали и сравнивали между собой только Windows 7 Ultimate (64-bit) и Windows 8 Enterprise (64-bit).
Тестирование мы производили на компьютере следующей конфигурации:
- процессор — Intel Core i7-3770K;
- материнская плата — Gigabyte GA-Z77X-UD5H;
- чипсет системной платы — Intel Z77 Express;
- память — DDR3-1600;
- объем памяти — 8 Гбайт (два модуля GEIL по 4 Гбайт);
- режим работы памяти — двухканальный режим;
- видеокарта — NVIDIA GeForce GTX 660Ti (видеодрайвер 314.07);
- накопитель — PNY PREVAIL ELITE SSD (240 Гбайт).
Для тестирования мы использовали утилиту ComputerPress Benchmark Script v.12.0, разработанную в нашей лаборатории. Подробное описание этой утилиты можно найти в мартовском номере нашего журнала.
Напомним, что в нашем тестовом пакете используются следующие приложения:
- Xilisoft Video Converter Ultimate 7.7.2;
- Wondershare Video Converter Ultimate 6.0.3.2;
- Movavi Video Converter 10.2.1;
- Adobe Premier Pro CS 6.0;
- Photodex ProShow Gold 5.0.3276;
- Adobe Photoshop CS 6.0;
- Adobe Audition CS 6.0;
- ABBYY FineReader 11;
- WinRAR 4.20;
- WinZip 17.0.
Все тесты разбиты на шесть логических групп:
- видеоконвертирование;
- аудиообработка;
- создание видеоконтента;
- обработка цифровых фотографий;
- распознавание текста;
- архивирование и разархивирование данных.
Для каждой логической группы тестов рассчитывается свой интегральный результат, а также — интегральный результат по всем логическим группам тестов, который и представляет собой интегральную оценку производительности.
Отметим, что для запуска утилиты ComputerPress Benchmark Script v.12.0 из-под операционной системы Windows 8 нам пришлось незначительно изменить код, дабы иметь возможность запускать тест от имени администратора, добавлять ярлыки программ в автозапуск и прочие мелочи, которые реализованы в Windows 8 не так, как в Windows 7. Но эти изменения никак не отражаются на результатах тестирования!
Также мы произвели дополнительную настройку операционной системы Windows 8, в частности заблокировали интерфейс Metro и фильтр SmartScreen, отключили UAC (блокировкой режима Admin approval mode) и отключили Windows Defender, использование которого очень негативно отражается на производительности системы при операциях копирования файлов. Одним словом, мы сделали тюнинг операционной системы Windows 8, убрав оттуда все то, чем так гордится Microsoft, но что раздражает любого опытного пользователя и делает работу с системой практически невозможной. Более подробно о настройке операционной системы Windows 8 вы сможете прочитать в следующем номере журнала.
Результаты тестирования
Результаты тестирования операционных систем Windows 7 Ultimate (64-bit) и Windows 8 Enterprise (64-bit) в пакете ComputerPress Benchmark Script v.12.0 представлены в таблице и на рисунке.
Результаты тестирования в пакете ComputerPress Benchmark Script v.12.0
Как видно по результатам тестирования, скорость выполнения тестовых задач в Windows 7 Ultimate (64-bit) и Windows 8 Enterprise (64-bit) практически одинакова, а потому можно сказать, что эти операционные системы обеспечивают практически равную производительность. Исключение составляют лишь приложения Wondershare Video Converter Ultimate 6.0.3.2 (видеоконвертер) и Adobe Premier Pro CS 6.0, которые работают быстрее под управлением операционной системы Windows 7.
Так, в случае использования операционной системы Windows 8 время конвертирования видеофайла приложением Wondershare Video Converter Ultimate 6.0.3.2 (видеоконвертер) увеличивается на 28%, а время создания фильма приложением Adobe Premier Pro CS 6.0 увеличивается на 4%.
Конечно же, эта разница не очень существенна и в целом можно утверждать, что в операционных системах Windows 7 и Windows 8 все приложения демонстрируют примерно равную производительность. И если провести надлежащий тюнинг Windows 8, то эту систему вполне можно использовать.