boost::timer t5; sleep(10); printf("elapsed:%f \n", t5.elapsed());
위와 같은 코드인때, 10.000 이 찍혀야 할 것 같은데 그냥 0.0000 이 찍힙니다.
timer 라는게 경과시간을 찍어주는 API 아닌가요?
왜 저러는지 궁금합니다. boost 에 대해 잘 아시는 분 좀 알려주세요.
sleep() 대신 cpu 처리가 필요한 for문등의 작업을 하면 cpu처리 시간에 대한 elapsed time이 출력됩니다. sleep()의 경우 cpu 처리가없어 0으로 나옵니다.
의도한 결과를 얻으실려면 gettimeofday 혹은 boost::timer::cpu_timer를 이용하시면 될거 같습니다. 기타) windows ::Sleep의 경우는 boost::timer의 elapsed time이 계산됩니다.
브이~
boost timer API를 보니 elapsed를 호출하기 전에 t5.stop() 을 호출해줘야 할 것 같은데요?
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
boost::timer는 cpu 처리시간에 대한 time을 계산합니다.
sleep() 대신 cpu 처리가 필요한 for문등의 작업을 하면
cpu처리 시간에 대한 elapsed time이 출력됩니다.
sleep()의 경우 cpu 처리가없어 0으로 나옵니다.
의도한 결과를 얻으실려면 gettimeofday 혹은 boost::timer::cpu_timer를 이용하시면 될거 같습니다.
기타) windows ::Sleep의 경우는 boost::timer의 elapsed time이 계산됩니다.
브이~
boost timer API를 보니 elapsed를
boost timer API를 보니 elapsed를 호출하기 전에 t5.stop() 을 호출해줘야 할 것 같은데요?
댓글 달기