이것을 실행
strace -ff -tt perl -e 'open(A,"<","/proc/cpuinfo");'
이것을 고려하면:
22:36:10.365187 openat(AT_FDCWD, "/proc/cpuinfo", O_RDONLY) = 3
22:36:10.382061 ioctl(3, TCGETS, 0x7fffb127ea50) = -1 ENOTTY (Inappropriate ioctl for device)
/proc/cpuinfo
메모리에 있는 파일이며 느린 디스크에 액세스할 필요가 없습니다. 여는 데 왜 17밀리초가 걸리나요?
유휴 시스템에서 10번 테스트했는데 타이밍이 매우 일관되었습니다.
$ uname -a
Linux hk 4.15.0-20-generic #21-Ubuntu SMP Tue Apr 24 06:16:15 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
답변1
커널 버전 4.12부터 다음을 지원하는 x86 CPU에서APERF / MPERF MSR/proc/cpuinfo
, CPU 주파수가 정확하게 보고되는지(또는 적어도 너무 오래된 값이 표시되지 않는지) 확인하기 위해 전원을 켰을 때 약간의 지연이 발생합니다. 다음 버전에서는 약간 변경되었습니다.cpufreq: x86: scale_cur_freq가 예상대로 더 많이 작동하도록 만들기(4.13, 대기 시간 증가) 그리고 다시x86/CPU: 항상 /proc/cpuinfo에 현재 CPU 주파수를 표시합니다.(4.14, 대기 시간 감소).