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

QThread의 적용 part9

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

안녕하세요?

 

이번 포스팅에서는 지난번에 어느정도 완성이 되기는 되었지만, 그래도 만족할 수준은 아니라는 생각이 들었습니다. 그래서 이번 포스팅에서는 우선 작업에 걸리는 시간부터 측정을 하고나서, 얼마나 걸렸으며, 여기서 발생된 문제가 무엇이며 어떻게 헤쳐나갔는지에 대해서 올려보고자 합니다.

 

먼저 parent.py에 가서, 위 스크린샷처럼 자식 프로세스인 multithread2.py가 시작할때와 종료할 때 얼마나 걸리는 지 알아보도록 위 스크린샷처럼 현재 시간을 기록하도록 만들어 줍니다.

 

그런데 문제가 생겼습니다. 10개의 종목을 스크리닝 하는데 1분 39초가 걸리는 것을 확인할 수 있었습니다. 이래서는 제가 원했던 것에 비해서 너무 느린 속도입니다.

 

그래서 위 스크린샷처럼 먼저 number를 0으로 만들어 주도록 합니다.

 

일단 혹시나 해서 되는지 알아보기 위해서 원래는 2개만 되는 멀티 스레드를 3개로 늘려서 한번 실행시켜 보도록 했습니다.

 

 

그리고 나서 위 스크린샷처럼 실행을 했더니, 제대로 3개의 멀티 스레드로 실행이 되는 것을 확인할 수 있었습니다. 일단 이 스레드들이 순차적으로 실행이 되는 듯 합니다만, 그래도 이렇게 나오는 것이 어디인가 하는 생각이 들었습니다.

 

그래서 한번 과감하게 양을 올려서 10개의 스레드를 작동 시킬 수 있는지를 알아보도록 실행을 하였습니다. 이게 제대로 실행이 될지는 모르겠습니다만........

 

일단 시작하는 시점을 기록해 주도록 했습니다. 결과부터 말을 하자면, 제대로 10개의 스레드가 실행이 되도록 할 수 있었습니다.

 

일단 위 스크린샷처럼 모두 합쳐서 16초가 10개의 종목을 스크리닝하는데 걸리는 것을 볼 수 있었습니다. 이렇게 하는 것으로 봐서는 그렇게 나쁘지는 않은 것으로 보입니다.

 

그래서 한번 이제는 input()을 주어서 한번 제대로 작동을 할 수 있도록 만들어서 parent.py에서 지시를 주는 대로 작동을 시키도록 했습니다.

 

당연하다면 당연하게도 일단 준비가 된 것이 10개의 communication.txt밖에 없기 때문에 하는 수 없이 parent.py에서는 위 스크린샷과 같이 나오도록 조작을 했습니다.

 

이렇게 해서 나온 결과입니다. 분명히 subprocess를 쓰지않았을 때는 그렇게 오래 걸리지 않은 것으로 생각이 되었습니다만, 그냥 parent.py를 쓰는 것만으로도 33초라는 시간으로 뻥튀기가 되었습니다. 이래서는 20개 종목을 하는 것은 그다지 좋은 결과를 담보할 수 없습니다.

반응형

'무모한 도전-주식 인공지능 만들기' 카테고리의 다른 글

7월 마지막주 평균회귀 테스트의 결과  (0) 2019.07.30
QThread의 적용 part10  (0) 2019.07.30
QThread의 적용 part8  (3) 2019.07.29
QThread의 적용 part7  (6) 2019.07.29
QThread의 적용 part6  (4) 2019.07.28