liv*_*cmg 2 php imagemagick imagick
使用ImageMagick时,我可以为内存使用和最大线程数设置一些限制.据我所知,有3种方法可以做到这一点:
我已经使用"convert -list resource"测试了这些方法中的每一个并且它们都有效.
现在,我需要在PHP中使用IMagick扩展.有一个我可以用来设置限制的功能:
bool Imagick::setResourceLimit (int $type, int $limit)
Run Code Online (Sandbox Code Playgroud)
对于第一个参数,我可以使用以下之一:
imagick::RESOURCETYPE_AREA (integer) //equivalent of MAGICK_AREA_LIMIT
imagick::RESOURCETYPE_DISK (integer) //equivalent of MAGICK_DISK_LIMIT
imagick::RESOURCETYPE_FILE (integer) //equivalent of MAGICK_FILE_LIMIT
imagick::RESOURCETYPE_MAP (integer) //equivalent of MAGICK_MAP_LIMIT
imagick::RESOURCETYPE_MEMORY (integer) //equivalent of MAGICK_MEMORY_LIMIT
Run Code Online (Sandbox Code Playgroud)
问题是没有MAGICK_THREAD_LIMIT的等价物,IMagick似乎只是忽略了配置文件和环境变量.我怎么知道这个?我已将所有内存限制设置为零,并且IMagick在报告内存不足时仍然可以正常运行.
我真的希望我已经清楚了.问题是:如何在使用IMagick时更改线程限制?
编辑:我已设法通过使用'--without-threads'选项编译ImageMagick将线程限制设置为1.:P必须要做,直到找到更好的解决方案.