我一直在努力想辦法讓下面這段代碼執行速度更快:線程快速創建大量的圖表
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