我尝试conky.lua
使用以下函数将图像添加到我的
function drawimage(cr,img)
image = cairo_image_surface_create_from_png (img)
cairo_set_source_surface (cr, image, screen.x, screen.y)
cairo_paint (cr)
cairo_surface_destroy (image)
end
启动后,conky
我的电脑花了几分钟才冻结。重新启动后,我意识到该cairo_image_surface_create_from_png()
功能会占用我的内存。
如果可能的话,我怎样才能防止这种情况发生?
答案1
我的猜测是,直到 conky 关闭或重新加载配置时,内存才会被释放。
drawimage
您可以创建一个创建曲面的函数 x 和一个销毁曲面的函数 y,从 调用 xlua_startup_hook
并从 调用 y,而不是在每次调用 时创建曲面lua_shutdown_hook
。这样,表面只会在 Conky 启动或配置重新加载时创建一次,并在 Conky 关闭或配置重新加载时销毁一次。
有关lua_startup_hook
和 的详细信息,请参阅 man conky lua_shutdown_hook
。