본문 바로가기
무모한 도전-주식 인공지능 만들기

메모리 누수를 잡기 위한 여정 part4

by 인터넷떠돌이 2019. 6. 24.
반응형

안녕하세요?

 

지난번 포스팅에서 어찌어찌 해도 결국은 메모리 누수를 잡는데 실패를 하였습니다만, 일단 이건 이것이고, 다음으로 할 일은 계속해서 이 메모리 사용량이 시간이 지나면서 계속 증가하는 문제를 잡고자 하는 것 입니다.

 

먼저 아무것도 하지 않았을 때의 메모리를 작업 관리자를 통해서 체크하는 상황입니다. 기본적으로 5.7기가의 메모리를 잡아먹고 있는 것을 볼 수 있습니다.

 

이제 파이참을 실행시켜서 프로그램을 실행시켜 보도록 합니다. 이렇게 하는 것으로 다음에는 프로그램을 실행하자 마자 메모리는 얼마나 먹는지를 알아보고자 합니다. 그런데 처음에는 작업관리자를 찍었지만, 무슨 이유에서 인지 위 스크린샷처럼 OpenAPI사진이 찍히고 말았습니다.

 

일단 프로그램을 정지시키도록 하고, 이 다음에 메모리가 돌아는 오기는 오는지 한번 살펴 보도록 합니다. 이렇게 하는 이유는 혹시나 하는 생각이 들어서 입니다.

 

 

위 스크린샷을 보시면 알겠지만, 한참 실행 중 일때는 6.7기가까지 올라간 메모리가 어느 순간 프로그램을 중지 시키니까 400MB가 돌아온 것을 볼 수 있었습니다.

 

그래서 이런 메모리 누수를 막아주는 jemalloc이 있다고 해서 이게 처음에는 파이썬 라이브러리인가 싶어서 한번 위 스크린샷처럼 pip를 이용해서 설치하려고 했지만 먹히지도 않았습니다.

 

그래서 인터넷에서 jemalloc-5.2.0 을 다운로드 받은 다음에, 이를 한번 위 스크린샷처럼 cmd를 실행시켜서 인스톨 해 보고자 했습니다.

 

그러나 어찌된 것인지 알 수 없게도 ./configure라는 명령어가 듣지 않는 것을 볼 수 있었습니다. 나중에야 알았지만, 이게 리눅스 명령어라서 윈도우에서는 먹히지 않는 다는 것을 알 수 있었습니다.

 

그래서 짚푸라기라도 잡는 심정으로 한번 while문 대신에 위 스크린샷처럼 2개의 메서드를 만들어서 서로가 서로를 끝에 서로 부르도록 만들어 주도록 했습니다.

 

이렇게 해서 실행을 시킨 다음에, 위 스크린샷처럼 한번 작업관리자를 통해서 메모리 사용량을 체크해 보고자 했습니다. 일단 막 시작할 무렵에는 6.4기가를 사용하고 있는 것을 볼 수 있습니다.

 

그런데 작동을 시작하고 나서 한 30분이 지나고 나서는 위 스크린샷에서 볼 수 있는 것처럼 사용량이 점점 늘어나는 추세를 확인할 수 있었습니다. 결국 이렇게 해도 계속해서 메모리의 사용량이 늘어나는 것을 피할 수는 없다는 것을 알 수 있었습니다.

반응형