Я бы хотел противопоставить ответу drew010.В своем ответе он заявляет:
Вы бы много выиграли от использования расширений PHP вместо использования exec или подобных функций.Встроенные расширения будут работать быстрее и использовать меньше памяти, поскольку вам не придется порождать новые процессы и считывать вывод обратно
Для обработки изображений это действительно так.Ну, я точно знаю, что вызов двоичных файлов ImageMagick с использованием PHP-функции exec()
(или аналогичных функций) несет в себе дополнительные издержки выше, чем при использовании встроенных библиотек PHP, однако я не совсем понимаю, на , сколько таких издержек .
Но есть и другая сторона медали.Если вы встраиваете код ImageMagick в PHP через расширение, то каждый запрос с использованием PHP занимает больше памяти, независимо от того, обрабатывает ли запрос изображение или нет .Если вы используете Apache mod_php
, это становится еще больше проблемы, потому что теперь каждый запрос к вашему серверу имеет в памяти библиотеки ImageMagick, даже если он обслуживает файл HTML!
Так что это действительно зависит.Вы действительно хотите сохранить как можно меньше памяти в PHP.Если вы обрабатываете большое количество запросов, для которых требуется ImageMagic, и используете FastCGI или php_fpm
, то вы, вероятно, увидите выгоду от использования встроенного ImageMagick.Но если вы только изредка обрабатываете запросы с использованием ImageMagick и / или с помощью mod_php
Apache, тогда вы можете добиться гораздо большей производительности, вызывая ImageMagick через exec()
.