МакЦентр: Apple компьютеры, iPod, полиграфическое оборудование, новости, обзоры, новинки мира Mac
SelfMadeTest - тест быстродействия Mac [ 04 декабря, 2006 г ]

Новые модели компьютеров выходят регулярно, и каждый раз пользователи задаются одним и тем же вопросом:

Увеличилась ли производительность новых моделей, как утверждают реклама и независимые тесты в журналах и в интернете?

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

Я верю, что новый процессор стал делать больше на n-процентов операций в секунду, новая видеокарта способна передавать видео с лучшим качеством, а диски крутятся быстрее, но как это все великолепие скажется на работе моих любимых программ?

Будут ли изображения быстрее загружаться в iPhoto? Будут ли мои файлы быстрее переписываться на диске? Подобные вопросы задает себе каждый пользователь, потому что он хочет сравнить именно свою машину с новой моделью, произвести важные для него тесты и уж тогда решиться на покупку.

В этой статье я попробую рассказать как, пользуясь "подручными" средствами, можно протестировать свой компьютер на производительность важных для вас операций. В последствии МакЦентр будет тестировать новые модели Macintosh по описанным здесь тестам, предоставляя читателям результаты исследований. Никакие специализированные программы для тестирования использоваться не будут, а в качестве инструмента я буду пользоваться средствами уже заложенными в Mac OS X и в тестируемые приложения. В основном это средства автоматизации, так что многим будет интересно взглянуть на тесты с этой точки зрения.

Замеры времени.

Основа любого теста - замер времени. Насколько быстро ваш компьютер выполняет тут или иную операцию? Пытаться одновременно нажимать кнопки мыши и засекать время на секундомере не слишком удачная мысль, так что для начала нам нужно создать программу которая бы делала это за нас. И такая программа должна состоять из нескольких частей:

1. Фиксирование времени начала теста

2. Запуск тестируемой операции

3. Фиксирование времени окончания теста

4. Отображения результатов тестирования, то есть, начало и конец теста.

Как и в статье Макдильник, чтобы написать программу, не прибегая к программированию, воспользуемся средствами Mac OS X - программой Automator, и немного AppleScript.

Automator кажется мне идеальным средством для создания собственных тестов. Достаточно в любой рабочий процесс (Workflow) добавить средства замера времени в его начале и конце, и тест готов. Для начала создадим в Automator такой шаблон, внутрь которого мы сможем помещать тестируемые операции. Не будем утруждать себя излишними "наворотами" интерфейса наших тестов, - наша задача зафиксировать время начала и окончания и сохранить или отобразить эту информацию на экране.

В самом Automator нет средства замера времени, но нам поможет AppleScript, код которого можно встраивать в рабочий процесс Automator. Для этого в Librarу выберите Automator и в столбце Action найдите и перенесите в окно своего рабочего процесса действие Run Apple Script.

Для того чтобы замерить текущее время, нам потребуется практически одна строчка кода:

Эта строка устанавливает (запоминает) текущее время и дату в виде текстовой строки, так называемый, штамп времени, в некую переменную, названную date_stamp, но вы можете назвать ее, как вам заблагорассудится. Целиком же наш код будет выглядеть так:

Строка returndate_stamp заставляет блок кода AppleScript передать полученную информацию следующему за ним действию Automator. Теперь нужно каким-то образом отобразить ее, а лучше всего, сохранить в некий файл. Наиболее простым решением будет воспользоваться программой TextEdit, идущей в комплекте Mac OS X, и средствами ее автоматизации, заложенными в Automator. Среди действий Automator, относящихся к TextEdit, потребуется два: New TextEdit Document и Set Contents of TextEdit Documents. Первое заставляет TextEdit создать новый документ, что соответствует выбору пункта New из меню File. Второе действие сохраняет текст в открытый в TextEdit файл.

Теперь мы можем расписать структуру нашего рабочего процесса созданного в Automator.

1. New TextEdit Document. TextEdit создает новый текстовый документ, в котором будут сохранены результаты: время начала и окончания теста.

2. Run Apple Script. Код, замеряющий текущее время, приведенный выше.

3. Set Contents of TextEdit Documents. Как вы помните, текстовая строка с замеренным временем была установлена как выходной параметр для нашего AppleScript кода. Set Contents of TextEdit Documents сохранит этот текст в наш документ.

4. Собственно сами тестируемые операции.

5. Run Apple Script. Второй раз запускаем код, замеряющий время, это будет время окончания теста.

6. Set Contents of TextEdit Documents. Сохраняем полученное время в наш текстовый документ. Обратите внимание, что параметр в Set Contents of TextEdit Document должен быть установлен в значение Appending - добавление, в противном случае (Replacing), наша новая строка затрет весь содержащийся до этого в документе текст.

Вид нашего рабочего процесса и результат, созданный текстовый файл, показаны на рисунке. Разница во времени в двух полученных строках и есть время выполнения теста. Теперь вам остается только сохранить, если нужно, полученный текстовый документ.

Дальше я буду описывать, примеры различных тестов, а действия (Action) будут помещаться внутрь созданного нами шаблона.

Тест 1. Копирование файлов

Мы то и дело копируем и переносим файлы: из одной папки в другую папку, на "флэшку" или на iPod. Иногда приходится оперировать довольно большими объемами. И следующий тест, который поможет узнать, как мак справляется с этим, является одним из важнейших. При этом он легко реализуется с помощью Automator, так что начнем с него.

Для тестирования я создал папку files in, в которую поместил предназначенные для копирования файлы, и папку files out, куда они будут переписаны. Чтобы тест был корректным и показательным, имеет значение, чтобы размер папки был достаточно большим, а содержащиеся файлы были разнообразны и сильно отличались по размеру, тогда условия копирования будут больше похожи на реальные. Дело в том, что скорость копирования папки, содержащей один большой файл, и папки такого же размера с множеством маленьких файлов будут различны. Ведь компьютеру приходится обрабатывать информацию о каждом файле. Я использовал одну из своих рабочих папок размером 1,2 Gb. Она содержит как небольшие текстовые файлы, так и графические файлы различных форматов, объемом в десятки и сотни Mb.

Основная часть теста состоит всего из двух действий

- Get Specified Files Item - здесь, нажав кнопку со знаком плюс, мы указываем над какими файлами и папками должно производится действие. Я указал содержание подготовленной папки files in.

- Copy Finder Items - Собственно копирование указанных файлов. В параметр to я указал папку files out.

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

Тест 2. Добавление изображений в iPhoto

Этот тест комплексный. В ходе теста происходит добавление фотографий в библиотеку iPhoto. Изображения берутся с предварительно подготовленного CD-диска, содержащего несколько десятков цифровых фотографий. Таким образом, тест позволит дать комплексную оценку производительности вашего мака: задействован жесткий диск, cd-привод, а так как в процессе добавления файлов в iPhoto файлы обрабатываются, то и процессор с памятью. Кроме того, тест позволяет оценить скорость самого iPhoto, которое является довольно требовательным к ресурсам компьютера приложением.

Сам тест состоит из всего трех действий (Actions). Можно воспользоваться и двумя, как в предыдущем тесте, но мне хотелось показать, что в Automator можно указать не только содержимое папки, но и саму папку.

- Get Specified Files Item - в качестве папки для последующей обработки я указал CD-диск

- Get Folders Contents - заставляет Automator производить последующие действия на содержимым указанной папки

- Import Photos into iPhoto - команда iPhoto сохранить указанные изображения в свою библиотеку. В качестве параметров вы можете указать один из уже существующих альбомов, либо создать новый. Обратите внимание, что для чистоты тестирования в библиотеке iPhoto не должно содержаться копируемых файлов. Иначе операция прервется: iPhoto выдаст сообщение о дубликате добавляемого фото и будет ждать дальнейших указаний.

Тест 3. Обработка изображений

Обычно для иллюстрации работы Automator в качестве примера используют автоматическое уменьшение размеров изображений для последующей отправки их по электронной почте. Но я выбрал пример, который может показаться полезным тем, кто использует свой Macintosh для работы в издательстве и полиграфии. Изображения с цифровых фотокамер обычно имеют формат JPG и режим RGB, а в издательствах требуется TIFF в режиме CMYK. При верстке больших каталогов продукции перевод каждого изображения из одного формата в другой может оказаться весьма утомительным занятием. А если вы "забудете" один файл, это может привести к плачевным результатам: он выйдет в печати черно-белым или не напечатается совсем. Приведенный пример иллюстрирует автоматический перевод цифровых фотографий из цветового пространства RGB в CMYK и изменение формата файла из jpg в TIFF. Для теста я использовал те же файлы, что и в тесте iPhoto, но предварительно переписал их на диск. Последовательность действий в Automator, будет следующая:

- Get Specified Files Item - первые два действия аналогичны предыдущему тесту, но в этот раз мы указываем папку на жестком диске, а не на CD, так как файлы будут обрабатываться и перезаписываться.

- Get Folders Contents

- Apply ColorSync Profile to Images - это действие вы сможете найти среди действий, относящихся к программе Preview. Оно позволяет произвести над изображением довольно большой объем операций при помощи цветовых профилей. Этот Action - одна из надводных частей систем управлений цветом и печати MacOS (более подробно вы можете прочитать о них в статье о ColorSync Utylity).

Указав в качестве профиля требуемый, мы переведем его из исходного цветового пространства в пространство данного профиля, в нашем случае, CMYK Eurostandart. В меню выбора профиля будут указаны все профили, установленные в системе, то есть, соответствующие им файлы должны лежать в папке ColorSync одной из папок Library, домашней или общей.

- Change Type of Images - переводит изображение в указанный формат файлов, в нашем случае это TIFF.

Приведенный тест, помимо своего практического значения, позволяет оценить "родную" математику Mac OS X, так как используемые операции являются частью ее графической системы. Из аппаратной части вашего мака в этом тесте задействованы процессор и оперативная память

Тест 4. Создание PDF - файлов

Следующие тесты лежат в области профессиональной деятельности. В этом тесте мы задействуем программу Adobe Acrobat Distiller для создания PDF из предварительно созданного PS-файла. Этот файл содержит текст, графические растровые изображения, а также внедренные векторные изображения из файлов eps. Mac OS X умеет сама создавать PDF файлы, однако для издательской деятельности ее функций недостаточно. Для этого обычно используется профессиональный софт из пакета Adobe Acrobat. Дистилляция PDF из PS-файла задействует практически все ресурсы компьютера: память, процессор, жесткий диск, и таким образом очень показательна как комплексная оценка производительности всей системы.

Acrobat Distiller в своем отчете о создании PDF указывает время дистилляции, однако мы прибегнем к независимым замерам времени, создав тест аналогичный предыдущим. Текущая версия Acrobat - CS2, появилась до выхода Mac OS X 10.4, и видимо поэтому, в нее не входят специальные действия (Actions) для Automator. Их можно найти в интернете, на сайтах-каталогах Actions независимых разработчиков и т.п. Мы же воспользуемся AppleScript. Основная часть теста будет состоять только из одного действия Run AppleScript и включать в себя всего три строчки кода:

Приведенный код говорит сам за себя, заметим только, что в кавычки мы помещаем путь к файлу, предназначенному для дистилляции.

Тест 5. Photoshop

Adobe Photoshop является основной программой едва ли не всех, кто использует Macintosh, поэтому мы никак не можем обойти его своим вниманием. Мне бы хотелось получить комплексную оценку работы Photoshop, поэтому следующий тест включает в себя несколько производимых последовательно операций, а именно:

- Создание документа размером 42 на 60 см (размер близкий к А2), с разрешением 300 точек на дюйм в режиме RGB

- Закрашивание всего документа заданным цветом c помощью команды Fill

- Применение фильтра Noice (шум)

- Применение фильтра Unsharp Mask, служащего для увеличения резкости

- Применение фильтра Motion Blur - размытие в движении

Все эти операции являются, с одной стороны, весьма популярными при работе с Photoshop, а с другой стороны, достаточно требовательны к ресурсам компьютера. Особенно фильтры, которые применяют сложные алгоритмы к каждому пикселю изображения. При работе таких фильтров основная нагрузка ложится на процессор и оперативную память, а если размера последней оказывается недостаточно, то используется жесткий диск.

Чтобы осуществить описанную последовательность операций, мы воспользуемся средством автоматизации самого Adobe Photoshop - палитрой Actions. Создав новый Action в этой палитре и нажав кнопку Record (Запись), произведем все эти операции. После этого все наши действия будут сохранены в палитре Actions аналогично тому, как показано на рисунке.

Теперь нам осталось получить доступ к Action MacTest из теста в Automator. Но Photoshop пока не поставляется со своими Actions для Automator, так что нам придется снова использовать AppleScript:

Простая последовательность из трех строк кода заставит Photoshop выполнить любую указанную Action из его палитры: стандартную или созданную лично вами. Таким образом вы можете автоматизировать практически все действия Photoshop и легко включать его в свой рабочий процесс в Automator.

Тест 6. FileMaker

Меня удивляет, почему во многих тестах на производительность редко включают тесты на работу баз данных, ведь такой тест был бы очень показателен. Здесь задействуется файловая система компьютера, так как при работе с базой всегда идет обращение к диску, а также процессор и оперативная память для обработки полей базы.

Производимые операции могут быть не слишком сложны математически, но повторяются множество раз, по количеству записей в базе. Здесь могут проявить себя кэши процессора и жесткого диска, а также системы предсказания операций процессора и конвейерной обработки. Именно на таких тестах должны в полной мере продемонстрировать свои возможности компьютеры с процессорами нового поколения.

Для своего теста я выбрал программу FileMaker, самую популярную систему работы с базами данных для компьютеров Macintosh. На этот раз мы не будем пользоваться Automator. Мы проведем весь тест не выходя из FileMaker, воспользовавшись его собственным языком описания сценариев.

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

Описанный тест интересен еще и тем, что сейчас распространены две версии FileMaker - 8.0 и 8.5. Основное их различие в том, что версия 8.0 была написана еще для процессоров семейства PowerPC, а 8.5 уже имеет формат Universal Binary, то есть "родная" для компьютеров Mac c процессорами от Intel. Запуская этот тест на компьютере MacIntel в обеих версиях FileMaker, мы сможем оценить эффективность технологии Rozetta, эмулирующей команды Power PC процессоров. Если отличия в скорости обеих версий программ будут незначительны, то данный Intel Mac можно смело использовать даже с программами, работающими в режиме программной эмуляции. Его производительности будет достаточно.

Заключение

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


Автор: Аркадий Перла

Источники: МакЦентр