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

cmd상에서 제대로 python을 실행시키기 위한 도전-3-

by 인터넷떠돌이 2019. 7. 3.
반응형

안녕하세요?

 

이번 포스팅에서는 지난번 시간에 원인을 알 수 없는 에러가 발생한 것을 볼 수 있었는데, 일단 이 에러는 뒤로 미루어 주더라도, 우선은 제대로 실행을 시키는 것에 더 집중을 한다고 했습니다. 물론 이 에러는 나중에 나오는 모의투자에서 영향을 미친 것으로 추정이 됩니다.

 

혹시나 숫자 0이 나와서 에러가 나온 것이 아닌가 해서, 한번 구매가격을 1로 지정을 하도록 해 보았습니다. 일단 주식이 1주에 1원이 될 수 있는지는 모르겠습니다만, 일단 이렇게 설정을 해 주도록 했습니다.

 

그런데 이번에는 위 스크린샷처럼 유니코드 에러가 뜨면서 제대로 나오지 않는 것을 볼 수 있습니다. 아무대로 파이참과 명령 프롬프트에서 지원하는 유니코드가 달라서 이런 에러가 생기는 모양입니다.

 

그래서 한번 제대로 명령프롬프트인 cmd에서 실행을 시키도록 했습니다. 여기서는 제대로 실행이 되는 것을 확인할 수 있었습니다.

 

그래서 한번 다른 py파일로 가서, 여기서 값을 1로 바꾸면 기존에는 없던 에러가 나와서 action_list파일이 안 만들어 질지도 모른다는 생각이 들어서 일단 실험을 해 보기로 했습니다.

 

그런데 여기서도 파이참에서 실행을 하니까, 그대로 유니코드 에러가 뜹니다. 이게 너무 밤중에 작업을 하다보니 이 에러를 이때는 크게 신경을 안 썼고, 지금 포스팅을 올리면서 후회가 됩니다.

 

 

그래서 잘 모르고 이때는 다시금 0으로 바꾸어 주고서 다시 파이참에서 실행을 시도 했던가 이렇게 했습니다. 지금 생각해 보면, 이때 이 에러를 다시금 잡았어야 한다고 생각이 듭니다.

 

그런데 어찌된 것인지 유니코드를 제외한 다른 에러가 뜨지 않는 것을 볼 수 있었습니다. 그래서 이 때 까지만 해도 특별하게 생각없이 계속 이 에러에만 머무를 수 없어서 그냥 넘어 가도록 했습니다.

 

그리고 나서 action_list.txt가 나오지 않았는 5번째 자식 프로세스로 가서, 1로 바꾸었는 값들을 도로 0으로 바꾸어 주도록 합니다.

 

그리고 어떻게 된 것인지 모르겠지만, 이후에 다시한번 5번재 프로세스를 따로 실행을 시켰을 때는 에러없이 진행이 제대로 되는 것을 볼 수 있었습니다.

 

그리고 이제서야 제대로 10개의 action_list.txt가 생성이 되었다고 생각을 해서, 그냥 넘어갔습니다. 이때 까지만 해도 메모리 부족을 잡는게 너무 큰 과제여서 다른 걸 크게 생각하지 않았습니다.

 

이제 본격적으로 parent_pytrader3.py를 실행시키기 위해서 한번 움직여 보도록 합니다. 이렇게 하는 것으로 일단 작업이 제대로 될지 확인하러 갑니다.

 

그리고 나서는 메모리 부족을 잡는 것이 중요한 문제였기 때문에, cmd상에서 실행을 하였을 때는 얼마나 메모리가 많이 여유가 남는지 확인을 해 보고자 합니다.

 

그런데 유감스럽게도 이렇게 cmd상에서 실행을 시켜서 메모리 사용량을 파이참에서 실행했을 때 보다는 많이 확보를 했을 지라도, 위 스크린샷처럼 30분만 지났는데, 메모리 사용량이 비약적으로 늘어난 것을 볼 수있었습니다.

 

그렇게해서, 위 스크린샷처럼 어떻게 해서 action_list.txt를 생성하는 데도 큰 문제가 없었습니다. 이렇게 해서, 어찌어찌 해서, cmd라는 명령 프롬프트-그것도 관리자 권한을 부여한 것에서 실행하는 것은 문제가 없는데 이 메모리 사용량이 폭증하는 것은 어디가 문제인지 몰랐습니다.

 

그래서 작업관리자의 프로세스 항목을 유심히 보다보니, Open API가 이상하게 작은 메모리를 차지하지만, 이 프로세스가 종료되지 않고 쌓이면서 메모리를 잡아먹고 있다는 것을 볼 수 있었습니다. 이제까지 메모리 부족의 원인이 다른데 있다는 것을 알 수 있었는데, 문제는 이걸 어떻게 자동으로 잡아 주느냐 하는 것 입니다.

반응형