요즘 컴퓨터는 대부분 프로세스가 2개 이상인데, 멀티 프로세싱이 어느 정도의 효과를 가져오는지 궁금해서
개인적으로 메소드를 만들어서 체크해보았습니다.
사용한 컴퓨터는 듀얼코어입니다. (인텔 i3)
getterID () 라는 함수는 웹에서 데이터를 크롤링하는 함수입니다.
시간을 측정하기 위해서 tqdm 라이브러리를 사용했습니다.
멀티 프로세스의 문법은 아래와 같습니다.
from multiprocessing import Process
def 함수이름(name):
print 'hello', name
if __name__ == '__main__':
p = Process(target=함수이름, args=( '함수인자' ))
p.start()
p.join()
- 멀티프로세스 사용 X
- 멀티프로세스 사용 O
53번째 수행을 비교해보았습니다. (전부 다 실행하지는 않았습니다.)
멀티 프로세스를 사용한 쪽이 미묘하게, 경과시간과 남은 시간이 적게 남았습니다.
[ 걸린 시간 < 남은 시간 ]
01:12 < 2:43:51 VS 01:06 < 2:32:28
다음으로는 엑셀을 읽어와서 원하는 단어 리스트에서 해당하는 단어가 있는 얘들만 뽑아서
파일을 만들어 주는 메소드입니다.
아래와 같이 사용했습니다. ( arg 대신 그냥 메소드 전체를 넣었습니다. )
- 멀티프로세스 사용 X
- 멀티프로세스 사용 O
마지막 시간을 비교해보면
[ 걸린 시간 < 남은 시간 ]
34:15 < 00:33 VS 31:47 < 00:30
다소 차이가 있지만(약 2분 30초), 큰 차이는 볼 수 없었습니다.
정확히 멀티 프로세스가 원인인지, 프로세스의 상태에 따른 오차인지는 잘 모르겠습니다.
-출처-