表面_create_from_pngを使用すると、my_conky.luaのカイログラフィックがメモリを占有します。

表面_create_from_pngを使用すると、my_conky.luaのカイログラフィックがメモリを占有します。

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が終了するか、設定が再ロードされるまでメモリは解放されません。

drawimagelua_startup_hook呼び出すたびにサーフェスを作成するのではなく、サーフェスを生成する関数xとサーフェスを破壊する関数yを作成してからxを呼び出し、からyを呼び出すことができますlua_shutdown_hook。このようにして、サーフェスはConkyの起動時または設定の再読み込み時に一度だけ作成され、Conkyの終了時または設定の再読み込み時に一度だけ破棄されます。

の詳細については、lua_startup_hookman conkyを参照してくださいlua_shutdown_hook

おすすめ記事