Настройка утилиты ImageMagick convert

Настройка утилиты ImageMagick convert

В процессе написания работы по конфигурации сервера, мы столкнулись с задачей настройки convert. С её помощью несколько частей картинки объединялись в итоговый скриншот. По идее, склеить несколько изображений, имеющих одинаковую ширину, не составляет труда и подобная операция должна отнимать совсем незначительное время. Но не получится просто запустил convert.

######

 time convert part1.jpg part2.jpg -append result.jpg
 real    0m6.847s
 user    0m6.815s
 sys     0m0.019s
 

Почти 7 секунд, чтобы просто склеить две картинки? — Я решил что это уж очень много и полез искать решение.

ImageMagick версии 6.6 был поставлен мной из пакетов, первое решение — обновиться до последней версии и поставить из изходников.

Скачал архив с официального сайта и установил как есть, не указывая никаких дополнительных флагов компиляции. Повторный запуск convert не внушил оптимизма — значение были по-прежнему сильно завышенные. «Эх», — подумал я, — «придётся читать документацию». Здесь подробно описаны параметры конфигурации программы. Внимательно изучив возможные флаги компиляции, я обратил внимание на параметр «—disable-openmp»

—disable-openmp

disable OpenMP (default enabled).

Certain ImageMagick algorithms, for example convolution, can achieve a significant speed-up with the assistance of the OpenMP API when running on modern dual and quad-core processors.

Что в вольном переводе означает следующее:

Некоторые алгоритмы ImageMagick, например свёртка, могут работать значительно быстрее с помощью OpenMP API, при выполнении на современных двух- и четырёхядерных процессорах.

«Хм», — снова задумался я, — «врядли простенький VPS сервер соответствует этому критерию». Попробовать отключить этот OpenMP ничего не мешает, поэтому я удалил ImageMagick и запустил конфигурацию с флагом «—disable-openmp»

.

######

 ./configure --disable-openmp

После выполненных манипуляций, я запустил convert еще раз

######

 time convert part1.jpg part2.jpg -append result.jpg
 real    0m0.058s
 user    0m0.045s
 sys     0m0.013s

Ускорение времени работы более чем заметно!


Оставить комментарий