ajrengen
Мастер
- Регистрация
- 28 Сен 2008
- Сообщения
- 122
- Реакции
- 33
- Автор темы
- #1
Уже довольно долго использую библиотеку PECL Imagick, когда начинал её использовать понимал на что иду, но думал что решение временное... и как часто бывает нет ничего такого постоянного как временное. Но всё-таки сейчас решил, что пришло время вернуться к этому вопросу.
В чём проблема:
При подключении imagick.so рабочий размер исполнительных процессов php-fpm в ОЗУ увеличивается в два раза и время выполнения скриптов в целом, даже без использования функций библиотеки увеличивается примерно на 30%
Простой тест:
Файл index.php содержит <?php phpinfo(); ?>
C подключением imagick.so
Отключаем Imagick.so
Возможные пути решения:
1. переписывать все функции под exec();
2. возможно есть уже готовый класс использующий те же функции что и Imagick. Тогда не потребуется переписывать код по новой и можно будет подключать класс только там и тогда когда он нужен. К сожалению я такой не нашёл, по крайней мере полноценный. Возможно вы встречали?
3. ... ?
В чём проблема:
При подключении imagick.so рабочий размер исполнительных процессов php-fpm в ОЗУ увеличивается в два раза и время выполнения скриптов в целом, даже без использования функций библиотеки увеличивается примерно на 30%
Простой тест:
Файл index.php содержит <?php phpinfo(); ?>
C подключением imagick.so
Код:
ab -n 100000 -c 10 http://localhost/index.php
Requests per second: 1739.85 [#/sec] (mean)
VIRT RES SHR
60344 11m 5892 R 15.0 3.2 0:10.41 php-fpm
Отключаем Imagick.so
Код:
ab -n 100000 -c 10 http://localhost/index.php
Requests per second: 2484.99 [#/sec] (mean)
VIRT RES SHR
34288 4112 2228 R 22.6 1.1 0:01.84 php-fpm
Возможные пути решения:
1. переписывать все функции под exec();
2. возможно есть уже готовый класс использующий те же функции что и Imagick. Тогда не потребуется переписывать код по новой и можно будет подключать класс только там и тогда когда он нужен. К сожалению я такой не нашёл, по крайней мере полноценный. Возможно вы встречали?
3. ... ?