2012-12-18 3 views
1

가능한 중복 :
Getting cpu cycles using RDTSC - why does the value of RDTSC always increase?
Get CPU cycle count?CPU 사이클 카운트 C++

내가 정렬 알고리즘 분석 C++ 코드를 작성하려면, 나는 걸리는 얼마나 많은 프로세서 사이클을 알 필요가 배열을 정렬합니다.

어떻게 할 수 있습니까? 나는 그것이 인라인 어셈블리 이해

uint64_t rdtsc(){ 
    unsigned int lo,hi; 
    __asm__ __volatile__ ("rdtsc" : "=a" (lo), "=d" (hi)); 
    return ((uint64_t)hi << 32) | lo; 
} 

, 누군가가 작동하는 방법을 사용하는 방법을 설명 할 수있다 :이 코드 here을 발견

?

Linux를 실행합니다. 내 컴퓨터는 듀얼 코어입니다. 차이가 있습니까?

+0

정상적인 사람이하는 것처럼 벽 시간을 측정하지 않는 이유는 무엇입니까? –

+0

rdtsc를 사용하는 경우 정렬 알고리즘을 "분석"하지 않고 경험적으로 알고리즘의 특정 구현의 성능을 측정합니다. – phonetagger

+1

@JanDvorak - 당신이 말하는 "평범한"사람이 무엇인지 확신 할 수 없습니다. 필자는 rdtsc 또는 그와 비슷한 성능을 사용하는 프로그래머가 많다고 생각합니다. – phonetagger

답변

1

clock으로 전화를 했습니까?

documented here이며 원하는 것으로 보입니다.

+0

내가 틀렸다면 고쳐주세요. 기본적으로 왜 whant cpu cycle은 일정하기 때문에, 그리고 clock reading은 상황에 달려 있습니다. – Benedictus

+0

문서에서 : "프로그램에서 소비 한 프로세서 시간 **을 반환합니다. **"* (즉, CPU 와이드가 아니며 하나의 프로그램에만 해당) * – abelenky

+1

멋져,이 모든 것이 변경됩니다. – Benedictus