我正在使用Gmagick从PHP动态调整图像大小,并希望利用OpenMP来使用所有CPU内核。
我的命令行GraphicsMagick是使用OpenMP支持编译的,它确实使用它:当我调整一个非常大的图像时,我可以看到CPU使用率远远超过100%,这意味着它确实使用了几个CPU核心: / p>
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
55727 ben 20 0 927584 465024 5304 R 326.0 11.5 0:10.29 gm
然而,当我使用Gmagick从PHP运行类似的工作时,CPU使用率始终限制在100%,这意味着它使用单核(并且我的4核上的系统上限为25%的全局CPU使用率)机):
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
55911 ben 20 0 1236632 555132 20140 R 100.0 13.8 0:05.37 php
目前,我使用的是Fedora RPMs用于GraphicsMagick,Remi RPMs用于Gmagick和其他PHP 7软件包。
我尝试下载Gmagick来源并在configure
中找到一个OpenMP选项,但到目前为止没有成功。
是否可以编译Gmagick以使用OpenMP?
不应该自动使用OpenMP,因为Fedora打包的底层GraphicsMagick已经用OpenMP编译了吗?
请注意Imagick,ImageMagick的等效库,does allow the use of OpenMP。