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
.