멀티 스레딩 내가하는 기능이 없다) 함수더 증가 파이썬 HDF5 구문 분석 기능
3) 하나의 문자열 함수 프로파일 링시
로 문자를 결합, 내가 계산의 대부분이 단계 # 2에 소요되는 것을 발견, 문자에 대한 ASCII 정수의 전환. 나는 다소 사용하여이 전화를 최적화 한 :
''.join([chr(x) for x in file[dataSetName].value])
내 분석 기능이 결합 된 CPU (문자 정수의 변환) 및 것 같다으로하지 내가 바인딩, 나는 더/덜 선형 속도를 얻을 것으로 예상/O 파싱에 집중 한 코어의 수를 늘려라. 하나의 파일을 순차적으로 파싱하려면 ~ 15 초가 걸립니다 ... (내 12 코어 머신에서) 10 개의 파일을 파싱하려면 10 개의 스레드를 사용하는 동안 ~ 150 초가 걸립니다. 즉, 전혀 개선되지 않은 것 같습니다. 내 스레드를 실행하려면 다음 코드를 사용했다
은 :
threads=[]
timer=[]
threadNumber=10
for i,d in enumerate(sortedDirSet):
timer.append(time.time())
# self.loadFile(d,i)
threads.append(Thread(target=self.loadFileargs=(d,i)))
threads[-1].start()
if(i%threadNumber==0):
for i2,t in enumerate(threads):
t.join()
print(time.time()-timer[i2])
timer=[]
threads=[]
for t in threads:
t.join()
어떤 도움을 크게 감상 할 수있다.
아마도 GIL을 실행 중입니다. http://wiki.python.org/moin/GlobalInterpreterLock. –