Настройка утилиты 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 был поставлен мной из пакетов, первое решение — обновиться до последней версии и поставить из изходников.
Скачал
—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
Ускорение времени работы более чем заметно!
Оставить комментарий