ПРОЕКТЫ 


  АРХИВ 


  СТАТЬИ 


Антиспам-технологии 

Internet, WWW, UNIX 

Фото 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА














     СТАТЬИ :: Фото

Измерение производительности фотошопа

В действительности все не так, как на самом деле

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

Зачем это надо

Цифровая обработка больших (десятки мегабайт) фотоизображений - это нелегкий труд даже для самой продвинутой современной персоналки. При этом вовсе неочевидно, что производительность "под фотошопом" впрямую коррелирует с какой-то из распространенных бенчмарок. Скорее наоборот - фотошоп предъявляет к компьютеру достаточно специфические требования, что видно по тем тестам, где бенчмарки расписаны достаточно подробно (см. например здесь). У распространеннх бенчмарок с фотошопом существенный вес в конечной "цифирьке" имеют разнообразные фильтры, которые совершенно неинтересны фотографам (в том же тесте разброс скорости на отдельных интересных операциях до полутора раз, а общий счет отличается на 10 процентов).

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

Тесты, не использующие многопроцессорность
  • Конверсия RGB->CMYK и CMYK->RGB (два раза)
  • Конверсия RGB->LAB и CMYK->LAB (два раза)
  • Сохраниение в формате .PNG
Тесты, использующие второй процессор
  • Поворот на небольшой угол (3 поворота на 1 градус, 3 поворота на -1)
  • 'Distort' (нелинейное преобразование изображения, 3 действия)
  • Unsharp Mask (с радиусами 20,10,5 и 1 пиксель)
Тестовый набор файлов включает в себя стандартное изображение размером 1716x1608 пикселей, но тестовые операции проводятся с этой картинкой увеличеной до 3500x3280, 5000x4685 и 8000x7496 пикселей по ширине соответственно.

Первый размер - 11.5 мегапикселей - приблизительно соответствует размеру файла, получаемого с 35-мм кадра слайд-сканером с разрешением 2700-2900 dpi.
Второй размер - 23.5 мегапикселя - примерно соответствует размеру файла, получаемого с 35-мм кадра 4000dpi-сканером.
Третий размер - 60 мегапикселей - характерен для обработки несколькокадровых панорам с 35-мм формата и для сканов высокого разрешения со среднего формата.
Тестировать на картинках меньшего размера неинтересно - с ними все работает достаточно быстро без всяких тестов.

Выбранные операции на файлах такого размера относятся к достаточно массовым - повороты приходится делать на многих картинках с заваленным горизонтом, distort - в случаях исправления перспективы, сохранять в PNG - тем кто использует этот формат хранения. Остальные 3 операции (преобразование цветовых пространств и unsharp) делаются просто со всеми корректируемыми изображения.

Производительность Photoshop или производительность диска ?

Adobe Photoshop использует огромные временные (scratch) файлы даже в тех ситуациях, когда оперативной памяти, казалось бы, достаточно для обработки картинки. Размеры этих файлов превышают размер изображения в несколько раз. В то же время, Photoshop не способен использовать более 2 гигабайт RAM (а реально - и чуть менее).

Вышесказанное приводит к следующей (на первый взгляд, анекдотической) схеме: всю память, превышающую 1.5-2 Gb нужно отдать под виртуальный диск (RAM disk) и назначить на него scratch-файлы фотошопа.

Несмотря на странность этой схемы, она дает совершенно поразительные результаты, отраженные в таблице:
Тестировался Photoshop CS, Время в секундах
Тест (#11)P4 3.0C, 2GB ram
scratch на SCSI-диск
(#12)P4 3.2E, 4GB ram
scratch RAM-диск
23.5Mpix (5000x4685)
Rotate 21 15
Unsharp 9 8
Distort 15 11
RGB<->CMYK 25 24
RGB<->LAB 12 11
  60 Mpix (8000x7497)
Rotate 51 34
Unsharp 21 --
Distort* 27 19
RGB<->CMYK 72 60
RGB<->LAB 42 31
(#) - номера соответствуют
описанию конфигурации
(*) - с 60-Mpix картинкой использовался укороченный тест Distort - с двумя шагами вместо трех. В противном случае измеряется производительность записи в scratch-файл, ибо несмотря на Purge, фотошоп очищает его плохо.

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

  • На тех тестах, где диск задействуется мало (unsharp, конверсия цвета для картинки 23Mpix), видно что прирост производительности между Pentium4-3.2 и 3.0 довольно небольшой, в пределах 10% или менее.
  • Если взять картинку побольше или те операции, для которых создается большой scratch, то разница в производительности получается гораздо больше, до 1.5 раза.

Предуведомление об остальных результатах

Как следует из вышесказанного, тестирование производительности Photoshop во многих случаях вырождается в тестирование производительности файловой системы Windows (а она, в свою очередь, зависит от огромного количества факторов и для своего исследования требует отдельных тестов).

Как следствие, доверять нижеописанным результатам можно только для тестовых файлов небольшого размера (11 и, в крайнем случае, 23 Mpix).

Photoshop CS

Так как данных по Photoshop CS накоплено мало, имеет смысл сравнивать его с Photoshop7, исключительно с целью анализа качества продукта.

Время в секундах (картинка 23.5 Mpix)
Тест P4 3.0C (#11)
Photoshop 7 Photoshop CS
23.5Mpix (5000x4685)
Rotate 22 21
Unsharp 9 9
Distort 40 15
RGB<->CMYK 32 25
RGB<->LAB 20 16
  60 Mpix (8000x7497)
Rotate 55 51
Unsharp 22 21
Distort** 63 27
RGB<->CMYK 77 72
RGB<->LAB 51 42

(*) - Сохранение PNG у Photoshop CS такое же омерзительное, как у Photoshop7. Сравнивать производительность 3rd-party решения (например, SuperPNG) под разными версиями - большого смысла нет.
(**) - с 60-Mpix картинкой использовался укороченный тест Distort - с двумя шагами вместо трех. В противном случае измеряется производительность записи в scratch-файл, ибо несмотря на Purge, фотошоп очищает его плохо.

Краткие выводы

Как ни удивительно, но Photoshop-CS опять быстрее своего предшественника. Где-то - в разы (Distort), где-то на десятки процентов, где-то чуть-чуть (Unsharp). Пустячок, а приятно.

Photoshop 7

За время, прошедшее после выхода первой версии этой статьи появился Photoshop7, причем согласно другим тестам он не медленнее 6-й версии (что обычно случается), а наоборот быстрее. Для сравнения со старой версией, для первых двух систем приводятся времена для обоих версий.

Время в секундах (картинка 23.5 Mpix)
Тест Dual P3-866 (#2) P4-2.88 (#7) Dual Apple
Power G4-1.25Ghz
Dual Xeon
1.8Ghz (#9)
Dual Xeon
2.2Ghz (#10)
P4 3.0C (#11)
Photoshop 6Photoshop 7 Photoshop 6Photoshop 7 Photoshop 7 PS7 PS7 PS7
23.5Mpix (5000x4685)
Rotate 35 35 29 27 22 29 25 22
Unsharp 16 16 11 10 11 11 10 9
Distort 51 58 49 46 36 65 65 40
RGB<->CMYK 114 48 72 45 16 44 35 32
RGB<->LAB 65 31 72 29 10 25 20 20
save-png(**) 83** 83** 40** 37** 44-50** -*** -*** -***

(#) - номера соответствуют описанию конфигурации
(**) - PNG-плагин у Photoshop7 безумно медленный, примерно втрое медленнее чем у Photoshop6. Поэтому в тестах с 7-м Photoshop на платформе x86 использовался PNG.8BI от Photoshop 6.01 (про версию плагина на PowerMac сведений нет)
(***) - на этих системах тест на сохранение PNG не производился

Выводы из этой таблицы получаются прелюбопытные:

  1. Если вам нужны частые преобразования в CMYK/LAB/RGB и обратно, то Apple Dual-G4 - ваш выбор. При этом, цена системы на G4 получается раза в полтора больше (цены московские) в сравнении с single P4, а часть операций P4-3.0 делает не медленнее.
  2. Исходя из вышесказанного, вполне возможно что best buy - на самом деле Dual Xeon - ценой проигрыша на преобразованиях цветовых пространств (которые на PC и Photoshop7 не распараллеливаются). Современные Xeon должны давать серьезный выигрыш на Rotate/Distort.
  3. Рамбус - проиграл битву за память. Сравните тесты, использующие два CPU у Dual Xeon и у P4-3.0 - при формальных мегагерцах в 1.45 раза больших у первого, быстрее - второй.
  4. Если сравнивать PS6 и PS7, то в Photoshop7 очень сильно ускорены операции преобразования в CMYK и LAB, причем это ощущается и на P3 тоже. Интересно, как оно будет на Athlon, согласно тестам FCenter, ускорение у Athlon проявлено в меньшей степени.
  5. Если сравнивать 533 и 800Mhz FSB у P4 (системы 7 и 11, скорость памяти у этих машин приблизительно одинакова), то на тестах с предполагаемой локальностью доступа к памяти (RGB/LAB/CMYK) более быстрый L2-cache дает выигрыш примерно в 1.5 раза - что очень немало. На тестах, где явно нужна работа с большими объемами нелокальных данных (rotate/distort) - выигрыш скромнее.
Отвечая на один из исходных вопросов теста - Photoshop7 просто быстрее PS6 на многих операциях (и судя по всему набору доступных тестовых данных - никогда не медленнее). Удивительно в век "толстых и глупых программ".

Помогите собрать статистику

Результатов получено пока не так много, но основные современные архитектуры покрыты. Хотелось бы увидеть еще результаты современного однопроцессорного Athlon (включая 64-битные варианты), двухпроцессорного Athlon и современного dual-P4-Xeon с частотой 2.4-2.8Ghz и DDR-памятью. Если у вас есть такая машина с Photoshop7 на ней и полчаса времени - не откажите в любезности. Интересуют, в первую очередь, результаты для 23-Mpix файла.

Исходные данные для теста можно взять здесь (180Кб). Для получения консистентных результатов лучше рестартовать фотошоп перед каждым запуском. Пуристы рекомендуют перезагружать компьютер, но на мой взгляд это не дает дополнительной стабильности. Крайне полезно дефрагментировать диск(и) на которых расположен scratch-файл фотошопа и swap-файл Windows.

История - Photoshop6

Сбор данных для тестирования производился в марте 2002 года. Дело было новое - и для тогдашних систем и тогдашних фотошопов было получено много данных, которые и предлагаются вниманию читателя.

Тесты проводились на Photoshop 6.0/6.0.1. На исследованных системах различия в скорости у этих версий - в пределах ошибки. 'P4 plugins update' (поддержка SSE2) сильно ускоряет операции rotate и distort на P4/P4Xeon и не влияет практически на P3/Athlon (этот факт отдельно проверялся). Результаты для P4 приведены с этим апдейтом.

Результаты

Тесты, использующие 1 процессор
Время в секундах
Тест # системы
(описание ниже)
1
Dual Athlon 1.2Ghz
2
Dual P-III, 866Mhz
3
Single P-III, 1210Mhz
4
P4Xeon, 1.7GHz
5
P4, 2.0GHz
6
Dual P4Xeon, 1.5GHz
7
P4 2.88 Ghz
11.5 Мpix (3500x3280)
RGB<->CMYK - 56 - 53 45 - 32
RGB<->LAB - 33 - 30 25 - 17
save-png - 45 - 30 26 - 20
23.5 Мpix (5000x4685)
RGB<->CMYK 77 114 87 107 100 120 72
RGB<->LAB 42 65 52 51 52 58 40
save-png 58 83 66 56 50 61 40
60 Мpix (8000x7496)
RGB<->CMYK 193 283 222 - - - 207
RGB<->LAB 108 168 133 - - - 113
save-png 132 191 150 - - - 88
Тесты, использующие 2 процессора (если есть :)
Время в секундах
Тест # системы
(описание ниже)
1
Dual Athlon 1.2Ghz
2
Dual P-III, 866Mhz
3
Single P-III, 1210Mhz
4
P4Xeon, 1.7GHz
5
P4, 2.0GHz
6
Dual P4Xeon, 1.5GHz
7
P4, 2.88GHz
11.5 Мpix (3500x3280)
rotate - 17 - 22 20 - 13
unsharp - 9 - 8 7 - 5
distort - 24 - 32 45 28 22
23.5 Мpix (5000x4685)
rotate 26 35 48 45 40 30 29
unsharp 14 16 25 17 16 12 11
distort 57 51 65 85 (*) 130 (*) 140 (*) 49
60 Мpix (8000x7496)
rotate 66 86 121 - - - 83
unsharp 36 42 68 (*) - - - 28
distort 238 271 339 (*) - - - 200 (*)

- тестов для данного размера файла на данной платформе не проводилось
(*) - Возможно, в данном тесте системе не хватало памяти и измерена производительность scratch-disk.
Конфигурация тестировавшихся систем описана ниже
Системы на P4 тестировались с установленым 'P4 plugins update' от Adobe. Реально ускоряются только операции rotate и distort, на долгие преобразования цветовой модели влияния нет (а жаль).

Описание тестировавшихся систем:

  1. Dual AMD Athlon MP-1200, 2GB RAM (DDR PC2100), Tyan Thunder K7, HDD: SCSI 10k RPM
  2. Dual Pentium-III 866Mhz, 1.5Gb RAM (SDRAM, 133), Supermicro 370DE6 (ServerWorks HEsl, interleaved memory), HDD: 2xSCSI 10kRPM (свап и photoshop scratch на разных дисках)
  3. Single Pentium-III, 1210Mhz (110Mhzx11), 0.5/0.75/1.0Gb RAM, Asus P3BF, SCSI 10k rpm. (Варианты 3a/3b/3c соответствуют разному количеству памяти: 512/768/1024Mb)
  4. P4Xeon-1.7 (100Mhzx17), Dell, i860/RAMBUS, 0.5gb RAM, IDE 7200rpm
  5. P4-2.0 (133Mhzx15), Asus p4b, i845/SDRAM, 0.5gb RAM, SCSI 10000rpm
  6. DualP4Xeon-1.5 (100Mhzx15), Dell, i860/RAMBUS, 0.5gb, IDE 7200rpm
  7. P4, 2.88Ghz (160Mhz*18), Asus P4PE, i845PE/DDR, память DDR333 @400Mhz, SCSI 10k rpm.
  8. Apple Dual 1.25GHz PowerPC G4 256K L2 cache & 2MB L3 cache/processor,167MHz System Bus 1GB PC2700 DDR SDRAM,120GB Ultra ATA drive, ATI Radeon 9000 Pro. Под Photoshop 7.0 выделено 750 МВ. Система 9.2.2 (система тестировалась с Photoshop7, сравнивать 6-й и 7-й фотошопы впрямую трудно)
  9. Dual P4-Xeon, 1.8Ghz, Hyperthreading, 2Gb Rambus
  10. Dual P4-Xeon, 2.2Ghz, Hyperthreading, 2Gb Rambus
  11. P4-3.0C, 3.0Ghz, 800Mhz FSB, 2Gb DDR333, SCSI 10k rpm, Win2k-SP4
  12. P4-3.2E, 3.2Ghz, 800Mhz FSB, 4Gb DDR400, SCSI 10k rpm, WinXP-SP2

 




Copyright © Lexa Software, 1996-2009.