XCopyArea() 이용시에 발생하는 메모리 렉 관련 질문입니다.
죄송합니다. 제목을 잘 못 적겠네요. 저게 적절한건지... -_-;
현재, xlib로 linux x-window 에서 돌아가는 어플을 짜고 있습니다.
근데 프로그램이 중간에 자꾸 죽길래 (멈춰버림) 무슨 문젠가 했더니
어플이 메모리를 너무 많이 잡아먹어서 멈춘 거더군요.
근데, 메모리를 잡아 먹는 부분을 보니... 화면에 XCopyArea로 Pixmap 이미지를 복사하니, 메모리 점유율이 올라가더라구요.
그래서, 예를 들어 버튼을 100번 정도 누른다 그럼 이미지를 100회정도 덮어쓰고(실제로는 exposure 이벤트가 있어서 좀 더 일어날 겁니다.), 그러다가 메모리 다 잡아먹어서 멈추고...
근데요, 여기서 이해가 안되는게, XCopyArea()만 해도 메모리 점유율이 올라가나요?
전 이런 경우는 처음 봐서요.
덮어쓰는 이미지가 숫자라, 어짜피 11개(컴마 포함)밖에 없고, 이것도 매회 생성( 메모리에 create )하는게 아니라 순전히 XCopyArea() 만 받아서 이용할 뿐인데요.
혹시, 말그대로 카피라, 저 함수 한 번 쓸 때마다 복사한 영역만큼의 메모리가 생겨서 해제되지 않는 건가요?
구글 뒤져보니 저랑 비슷한 증상의 사람이 있다던데, 그사람은 이벤트 처리를 잘 못해서 XCopyArea()가 발생했을 때 exposure이벤트를 처리 안해서 그게 이벤트 큐에 쌓여있어서 에러가 발생했다고 하더라구요. 근데 저는 XCopyArea() 후에 XFlush()를 해 줬기 댐에 이벤트가 쌓여 있지도 않구요... -_-;
누구 저랑 비슷한 경우 보셨던 분이나 겪으셨던 분, 답변 부탁드립니다. 도저히 어느 쪽을 찔러봐야 하는지 모르겠습니다.
이것때문에 일요일에 나와서 오늘도 못들어가게 생겼습니다. T_T
그럼...좋은 밤 되세요.
댓글 달기