XCopyArea() 이용시에 발생하는 메모리 렉 관련 질문입니다.

cococo의 이미지

죄송합니다. 제목을 잘 못 적겠네요. 저게 적절한건지... -_-;

현재, xlib로 linux x-window 에서 돌아가는 어플을 짜고 있습니다.
근데 프로그램이 중간에 자꾸 죽길래 (멈춰버림) 무슨 문젠가 했더니
어플이 메모리를 너무 많이 잡아먹어서 멈춘 거더군요.
근데, 메모리를 잡아 먹는 부분을 보니... 화면에 XCopyArea로 Pixmap 이미지를 복사하니, 메모리 점유율이 올라가더라구요.
그래서, 예를 들어 버튼을 100번 정도 누른다 그럼 이미지를 100회정도 덮어쓰고(실제로는 exposure 이벤트가 있어서 좀 더 일어날 겁니다.), 그러다가 메모리 다 잡아먹어서 멈추고...

근데요, 여기서 이해가 안되는게, XCopyArea()만 해도 메모리 점유율이 올라가나요?
전 이런 경우는 처음 봐서요.
덮어쓰는 이미지가 숫자라, 어짜피 11개(컴마 포함)밖에 없고, 이것도 매회 생성( 메모리에 create )하는게 아니라 순전히 XCopyArea() 만 받아서 이용할 뿐인데요.
혹시, 말그대로 카피라, 저 함수 한 번 쓸 때마다 복사한 영역만큼의 메모리가 생겨서 해제되지 않는 건가요?

구글 뒤져보니 저랑 비슷한 증상의 사람이 있다던데, 그사람은 이벤트 처리를 잘 못해서 XCopyArea()가 발생했을 때 exposure이벤트를 처리 안해서 그게 이벤트 큐에 쌓여있어서 에러가 발생했다고 하더라구요. 근데 저는 XCopyArea() 후에 XFlush()를 해 줬기 댐에 이벤트가 쌓여 있지도 않구요... -_-;

누구 저랑 비슷한 경우 보셨던 분이나 겪으셨던 분, 답변 부탁드립니다. 도저히 어느 쪽을 찔러봐야 하는지 모르겠습니다.
이것때문에 일요일에 나와서 오늘도 못들어가게 생겼습니다. T_T

그럼...좋은 밤 되세요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.