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
lua_startup_hook
呼び出すたびにサーフェスを作成するのではなく、サーフェスを生成する関数xとサーフェスを破壊する関数yを作成してからxを呼び出し、からyを呼び出すことができますlua_shutdown_hook
。このようにして、サーフェスはConkyの起動時または設定の再読み込み時に一度だけ作成され、Conkyの終了時または設定の再読み込み時に一度だけ破棄されます。
の詳細については、lua_startup_hook
man conkyを参照してくださいlua_shutdown_hook
。