python子流程与Wand的性能对比?

python子流程与Wand的性能对比?,python,imagemagick,wand,Python,Imagemagick,Wand,我正在寻找一种计算和内存高效的方法,在Python程序中使用ImageMagick来检索批量照片的尺寸 我首先使用了当前最喜欢的ImageMagick Python包Wand。我试了一下,感觉很慢。所以我准备了一个测试,与使用subprocess.check_output()简单地执行ImageMagick相比。子流程的速度快了10倍多 我的问题:这是别人的经历吗?有没有办法更快地使用魔杖 魔杖用了1.2秒: 1.jpg: 3264x2448 2.jpg: 1600x1200 3.jpg: 17

我正在寻找一种计算和内存高效的方法,在Python程序中使用ImageMagick来检索批量照片的尺寸

我首先使用了当前最喜欢的ImageMagick Python包Wand。我试了一下,感觉很慢。所以我准备了一个测试,与使用subprocess.check_output()简单地执行ImageMagick相比。子流程的速度快了10倍多

我的问题:这是别人的经历吗?有没有办法更快地使用魔杖

魔杖用了1.2秒:

1.jpg: 3264x2448
2.jpg: 1600x1200
3.jpg: 1700x1101
4.jpg: 1600x1200
5.jpg: 3648x2736
6.jpg: 2789x1980
7.jpg: 2400x1600
8.jpg: 3648x2736
processed 8 files in 1.236s
子流程仅花费0.1秒检索相同的文件:

1.jpg: 3264x2448
2.jpg: 1600x1200
3.jpg: 1700x1101
4.jpg: 1600x1200
5.jpg: 3648x2736
6.jpg: 2789x1980
7.jpg: 2400x1600
8.jpg: 3648x2736
processed 8 files in 0.102s
魔杖代码:

for filename in files:
  with wand.image.Image(filename=filename) as img: return img.width, img.height
子流程代码:

subprocess.check_output(['identify', '-format', '%f:%w:%h\\n', 'path/to/imgs/*.jpg'])
# parse output by splitting each line on the ':'
我意识到这不是苹果对苹果,因为我在魔杖中每个文件调用ImageMagick一次。然而,我在魔杖中看不到任何批量选项,所以我相信这是魔杖在我的场景中能做的最好的选择


谢谢

问题可能是
Wand
正在使用
ctypes
imagemagick
提供接口,在这种特殊情况下,接口速度可能较慢。你试过改用它吗?PythonMagick上一次的版本是2012年9月,只有一个自述文件作为文档,而Wand是最近的版本——2013年9月——有漂亮的文档。PythonMagic需要Boost,我怀疑它在我的共享托管环境中是否可用。