2012-06-09 2 views
1

파이썬을 사용하여 컴파일 된 C++ exe의 반환 값을 가져 오려고합니다 (시간을 측정하는 동안).Python에서 외부 .exe 런타임을 측정하는 데 더 정확한 타이머가 필요합니까?

int main(){  
    return 1234; 
} 

Return Code: 1234 

Duration: 0.0438238265388 

내가 43+ 밀리 초 같은 느낌 파이썬 출력을한다 :

이것은이 Test.cpp에의 내용입니다

import subprocess 
import time 

info = subprocess.STARTUPINFO() 
info.dwFlags |= subprocess.STARTF_USESHOWWINDOW 
info.wShowWindow = subprocess.SW_HIDE 

t1 = time.clock() 
h = subprocess.Popen([r"C:\Users\MyName\Desktop\test.exe"], startupinfo=info) 
h.communicate() 
t2 = time.clock()-t1 

print "Return Code:", h.returncode 
print "Duration:", t2 

내 파이썬 코드 너무 길고 부정확합니다. 더 좋은 방법이 있습니까?

+2

실행 파일을 여러 번 실행 한 다음 실행 횟수로 나누는 것이 좋습니다. – Amber

+0

그 방법을 사용하면 300 번의 평균 실행 횟수가 15ms로 줄어든 것처럼 보입니다. 그러나 더 좋지만 여전히 느립니다. 내 파이썬 출력은 이것보다 훨씬 빠르며 파이썬이 C++보다 느린로드임을 알 수있다. – MyNameIsKhan

+0

C++에서 내부 clock_t 메소드를 사용할 수있는 방법이 있으며 프로그램 자체에서 시간과 리턴 값을 얻는다. – MyNameIsKhan

답변

0

또한 C++ 프로그램 자체의 시간을 측정하고 Python 프로그램에서 시간을 가져 오는 데 여전히 관심이있는 경우 C++ 프로그램에서 계산 한 시간을 되돌릴 수 있습니다.이 시간은 꽤 정확해야합니다. 또한 다른 사람들이 제안했듯이, 평균적으로 여러 번 실행합니다.

관련 문제