[ CnUnix ] in KIDS 글 쓴 이(By): akira (Park_S_J_) 날 짜 (Date): 2005년 8월 3일 수요일 오전 12시 17분 07초 제 목(Title): Re: 계산시간 측정? 표준 C인지는 모르겠으나 대부분 unix에서 portable한 최소 시간단위는 10ms인걸로 압니다. gettimeofday()의 자료구조 단위가 microsecond까지 나오기는 하지만 유효 해상도는 10ms에요. --- 이 주장은 어디에 근거하고 있는지 궁금하네요. microsecond까지 나오는데 유효하지 않다는 의미가 뭔지요? 아마 대부분의 unix가 default 10ms 단위로 time quantum을 준다는 것을 저렇게 해석한것 같은데.. 그거랑 지금 질문이랑은 다르지 않나요? 예를 들어, x86위에 올라가는 모든 unix는 TSC를 읽어서 CPU clock의 granularity로 시간 측정이 가능한걸로 아는데요? 왜 10ms보다 작은 시간 단위는 portable하지 않은지 설명 부탁드립니다. (__) --- 헉... 그러네요.. gettimeofday 해상도가 10ms이하군요. getrusage에서 나오는 최소 해상도는 10ms select, nanosleep등으로 sleep할수 있는 최소시간은 10ms 등에서 헷갈렸거나... 제가 알고 있는 정보가 아주 옛날 정보이거나.. 이런 쪽팔릴데가... ㅠ.ㅠ 어쨌거나 계산에 사용된 CPU시간을 재는 제일 정확한 방법은 t1 = getrusage(); 짧은 알고리즘 100만번 반복 수행 t2 = getrusage(); 해서 (t2-t1)/100만 하는것... |