성능시스템의 성능 카운터 레지스터에 액세스하고 시스템 성능을 분석하기 위해 사용자에게 메트릭을 제공하는 도구입니다.
제가 궁금한 점은 코드의 일부를 읽었을 때입니다. perf가 메모리 매핑된 영역에서 무언가를 읽고(커널이 쓰는 영역을 읽는 것 같은 느낌) /proc/modules도 읽지만 실제로 하드웨어 레지스터를 읽는 것과 관련된 내용을 찾을 수 없습니다. 모든 코드 기계.
- perf는 실제로 어떻게 샘플을 기록합니까?
- 실행 파일이 실행 중인 기능을 어떻게 식별합니까?
- 이러한 기호를 어떻게 인식합니까?
커널에는 성능 모듈도 있습니까(사용자 공간에서 실행되는 응용 프로그램에 "성능"을 전달하는 /tools 외에)?
누구든지 내부 작동 방식에 대해 더 자세히 말해 줄 수 있나요?