표면_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.

관련 정보