2010-06-17 6 views

답변

2

프로세스가 완전히 CPU 바운드 인 경우 처리량을 얻기 위해 프로세서 속도를 사이클 수로 나눕니다.

실제로 CPU 수는 거의 제한되어 있지 않으므로 다른 요소 (디스크 속도, 메모리 속도, 직렬화 등)를 고려해야합니다.

+0

과 같은 방법은 CPU/사용자 시간 시계 틱에 대한 좋은 평가를 제공합니다. 다른 요소 (I/O, 전환 등)를 할인합니다. –

+0

@Yuval : 오른쪽 -'clock()'도 CPU 매뉴얼의 계산주기가 고려하지 않는 메모리 읽기와 같은 것들을 고려하면 일반적으로 지연되는 이점이 있습니다. –

+0

다른 요인의 영향을 강조해 주셔서 감사합니다. 현실적으로 CPU 수의 제한된 프로세스는 거의 없습니다. –

2

간단한 : 당신이 얻을 값이 clock() man page를 참조 대한 추가 정보를 원하시면 근사치이라고

#include <time.h> 
clock_t c; 
c = clock(); // c holds clock ticks value 
c = c/CLOCKS_PER_SEC; // real time, if you need it 

참고.

0

일부 CPU는 내부 성능, 캐시 미스, 캐시의 #/메모리 읽기/쓰기 (심지어는 실행 유닛으로 당에 때때로) 등의 명령어 사이클과 같은 흥미로운 통계의 모든 종류를 수집 할 수 있습니다를 등록해야 직접 액세스 할 수 있지만 사용중인 CPU 및 OS에 따라 GUI를 통해 모든 세부 정보를 관리하는 기존 도구가있을 수 있습니다. 종종 좋은 프로파일 링 도구는 성능 레지스터를 지원하고이를 사용하여 통계를 수집 할 수 있습니다.

0

는 TI/루미 내리 마이크로에서 코어 텍스 M3를 사용하는 경우, 당신은 TI/루미 내리 마이크로에 의해 제공되는 DRIVERLIB 사용할 수 있습니다. SysTick 기능을 사용하면 SysTickPeriod를 1 프로세서 사이클로 설정할 수 있습니다. 따라서 인터럽트간에 프로세서 클럭이 1 개 있습니다. 인터럽트의 수를 세면 함수 또는 함수 블록에 걸리는 시간을 "충분히 예측"할 수 있습니다.