我正在尝试嵌入一个chartdrawer库,它只能在缓冲区中提供bmp图像。在
我正在加载这个映像,必须在新创建的pixbuf上显式调用delete,然后调用垃圾收集器。在
绘图方法称为每50ms
调用垃圾回收器非常耗费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()
你不需要打电话给垃圾回收员。Python会自动进行垃圾回收。在方法的末尾,
pixbuf
超出了范围(您也不需要“del pixbuf
”),并将被自动垃圾回收。所以对于初学者来说,删除方法的最后两行。在如果你的'draw'方法消耗了太多的CPU,你也可以少调用它。在大多数应用程序中,我认为用户可以每200毫秒处理一次更新,而不是每50毫秒更新一次,如果每50毫秒就意味着CPU出现问题。在
相关问题 更多 >
编程相关推荐