2017-03-20 7 views
0

내 C++ 프로그램 내의 함수에 대한 CPU 시간을 측정하려고합니다. 내가 부스트 라이브러리를 사용하고 있습니다. 그러나 내 프로그램을 실행할 때 나는 0 초의 결과를 얻는다. 누군가가 올바른 방향으로 나를 가리킬 수 있다면 부스트를 새로하게됩니까?0의 CPU 시간을 반환하는 부스트

내가 실제로 사용할 수있는 시간 (예 : 0.00156)을 반환하려면 어떻게해야합니까?

코드 : 내부 주() 당신은 boostchrono을 사용할 수 있습니다

boost::timer::cpu_timer timer; 

std::cout << tree1.search("Cork") << std::endl; 

//Print CPU TIME 
boost::timer::cpu_times elapsed = timer.elapsed(); 
std::cout << " CPU TIME: " << (elapsed.user + elapsed.system)/1e9 << " seconds" << std::endl; 
+0

'1e9' 대신'double (1e9)'를 쓰면 어떻게됩니까? – Xirema

+0

동일한 결과를 반환합니다 –

+0

'elapsed.user' 및'elapsed.system'에 대해 반환 된 원시 값을 출력 해 보았습니까? 너는 무엇을 얻 느냐? – Xirema

답변

1

;

boost::timer::cpu_timer timer; 

std::cout << tree1.search("Cork") << std::endl; 

//Print CPU TIME 
boost::chrono::duration<double> elapsed = boost::chrono::nanoseconds(timer.elapsed().user); 
std::cout << " CPU TIME: " << seconds.count() << "s\n" << " seconds" << std::endl; 
+0

여전히 차이는 없습니다. 함수가 실행될만큼 오래 걸리지 않고 CPU 시간이 너무 짧아서 표시 할 수 없습니까? –

+0

@luke_k 수정되었습니다, 지금 작동합니까? – Rama

+0

부스트 대신에'크로노 '를 사용하는 것이 좋습니다. 나는 그것이 더 나은 시간 해상도를 가지고 있는지 의심 스럽다. 나는 이것이 어떤 차이를 만들 것이라고 기대하지 않을 것이다. –