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.

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


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

Комментарии, обсуждение