我正在尝试嵌入一个只能在缓冲区中提供bmp图像的图表抽屉库。
我正在加载这个图像,并且必须显式地调用新创建的pixbuf上的delete,然后调用垃圾收集器。
绘图方法每50毫秒调用一次
调用垃圾收集器确实会消耗CPU。
有没有一种方法可以让所有进程只有一个pixbuf,而不需要调用gc?
还是我做错了所有的事?
如有任何帮助,请提前向您咨询
拉斐尔
代码:
def draw(self, drawArea):
#init bmp loader
loader = gtk.gdk.PixbufLoader ('bmp')
#get a bmp buffer
chart = drawArea.outBMP2()
#load this buffer
loader.write(chart)
loader.close()
#get the newly created pixbuf
pixbuf = loader.get_pixbuf()
#and load it in the gtk.Image
self.img.set_from_pixbuf(pixbuf)
del pixbuf
gc.collect()发布于 2009-06-17 03:36:33
您不需要调用垃圾收集器。Python会自动被垃圾回收。在您的方法结束时,pixbuf将超出作用域(您也不需要"del pixbuf"),并且将自动被垃圾收集。因此,对于初学者,删除方法的最后两行。
如果“draw”方法消耗了太多的CPU,你可能还想减少调用它的频率。在大多数应用程序中,我认为用户可以每200毫秒处理一次更新,而不是每50毫秒处理一次,如果每50毫秒就意味着会出现CPU问题。
https://stackoverflow.com/questions/1002841
复制相似问题