메모리절약하면서 루프 돌리는 방법이 뭐가 있을까요?

binoopang의 이미지

안녕하세요 ㅋ

루프가 무한루프는 아닌데 거의 무한루프만큼 돌 일이 있는데 ..
메모리 할당 루틴 같은건(malloc나 new 같은)없고 단순히 루프만 막 돌아요 .
근데 이게 자꾸 메모리 먹어서 out of memory 가 뜨는데요

혹시 이런 루프에서 메모리를 절약하는 방법이 없을까요?

참고로 단순히 while이랑 for문만 사용해서 돌리고 있습니다 ㅠ

winner의 이미지

함수 호출하고 내부적으로 malloc, new가 있는 것은 아닌가요?

phonon의 이미지

루트의 내부에서 호출하는 함수를 검사해 보세요.
분명 메모리 해제에 문제가 있을 겁니다.

다른 경우는 객체의 소멸보다 생성이 점점 많아지는 경우라고 생각됩니다.
이런 경우에는 객체 생성의 최대치를 지정하시고 sleep를 적절하게 사용하세요.

irondog의 이미지

strdup()와 같이 malloc()을 내부적으로 부르기 때문에 항상 free()해줘야 하는 함수도 있습니다. 쓰이는 함수를 잘 찾아 보세요.

chadr의 이미지

지역변수로 생성하는 객체가 내부적으로 new 나 malloc 후에 소멸자에서 해제 안할 수도 있습니다.
확인해보세요..
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.

-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.

simpid의 이미지

정말로 메모리 할당없이 루프만 도는지 확인해 보세요.

루프 자체는 동적 할당이 없습니다.