[완료] 윈도우에서는 안새는 메모리가 리눅스에서는 샐때?
글쓴이: kleinstein / 작성시간: 월, 2011/03/14 - 5:05오후
동일한 코드를 윈도우와 리눅스상에서 사용하고 있습니다.
언어: C++
윈도우 컴파일러: VS2008
리눅스 컴파일러: GCC 4.3.2 (Debian Server)
주로 사용하는 라이브러리: QT 4.6.2
그런데 윈도우에서는 메모리릭이 없습니다만..
리눅스에서는 컴파일해서 실행하면 메모리가 점점 증가하네요..
서버 프로그램이라서 항상 실행해 두어야 하는데 참 난감합니다. 어디서 어떻게 찾아나가야 할지 말이지요..
C++ 사용시 윈도우와 리눅스에서 이런 차이를 보일때, 이미 잘 알려진 C++ 코드의 주의사항이 혹시 있을까요??
Forums:
가비지 컬렉션...?
아마 스레드 처리 아니면, 가비지 컬렉션에서 문제가 생길 것 같은데요.
파괴자(?) 선언에서 malloc free 를 선언해두지 않으셨는지 확인해보시는 것이 좋을 것 같아요.
결국 다른 곳에서 답을 찾았습니다. QVector
결국 다른 곳에서 답을 찾았습니다.
QVector 클래스를 부모 클래스로 해서 프로그래밍을 했었는데.. QVector의 destructor 에 virtual 이 붙어 있지 않더군요.. -.-
확장하지 말라고 일부러 그런건지는 모르겠지만.. 어쨋거나 해결은 봤습니다.
그런데 왜 윈도우에서는 문제가 없었을까요? VS2008 컴파일러에서는 이걸 알아서 해결했다는 건데.. 정말 이해가 안가네요.
아무튼 파괴자(?)를 살피다가 찾아낸 거라서 어찌됐건 정말 감사드립니다!
댓글 달기