我一直在努力想办法让下面这段代码执行速度更快:线程快速创建大量的图表
def do_chart(target="IMG_BACK", xlabel="xlabel", ylabel="ylabel", title="title", ydata=pylab.arange(1961, 2031, 1)):
global MYRAMDICT
MYRAMDICT = {}
print "here"
for i in range(70):
MYRAMDICT[i] = cStringIO.StringIO()
xdata = pylab.arange(1961, 2031, 1)
pylab.figure(num=None, figsize=(10.24, 5.12), dpi=1, facecolor='w', edgecolor='k')
pylab.plot(xdata, ydata, linewidth=3.0)
pylab.xlabel(xlabel); pylab.ylabel(ylabel); pylab.title(i)
pylab.grid(True)
pylab.savefig(MYRAMDICT[i], format='png')
pylab.close()
此功能(请忽略pylab命令,他们在这里只是为插图)创建一个字典(MYTAMDICT),我用cString对象填充,用于将图表存储在内存中。这些图表稍后会动态呈现给用户。
有人请帮我利用线程,以便我可以使用我的所有内核,并使此功能更快地执行?或者指出我想改进它的想法?
什么是当前的性能和它需要多快? – 2010-11-07 20:19:27
#Steven:如果我在for循环的开头插入“print i”,则可以看到每个图像需要接近一秒。但是,当我拥有真正应该使用的pylab代码时,这个时间会增加。每次用户更改新数据库时都会运行此函数,因此它会经常更改。我知道我可以绘制第一幅图像,而另一幅则在后台完成,但我的线程听起来像是最好的解决方案。 – relima 2010-11-07 20:23:09