我有一个脚本将一堆8位BMP连接到一个文件中,然后我用其他脚本处理。我对加快这个程序感兴趣。当我在linux上运行时,每100张图像大约需要10秒钟。当我在Windows上运行时,它需要6倍的时间。
我在带有cProfile的窗口上运行它,并且在总共运行时间为356秒(1000张图像)中的325秒花费在'ImagingEncoder'对象的{方法'编码'上。这很有趣,因为对于1000个图像,它运行此命令63000次。
对于如何加速代码,你有什么想法,无论是在Linux,还是在Windows上。正在读取文件的代码部分如下,其中f是输出文件:
import PIL.Image as p
from clint.textui import progress
for i in progress.bar(xrange(0,len(file_list))):
deets = p.open(file_list[i])
if deets.mode != 'L':
deets = deets.convert(mode='L')
f.write(deets.tostring())