Executando isso
strace -ff -tt perl -e 'open(A,"<","/proc/cpuinfo");'
dá isso:
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
é um arquivo na memória que não requer acesso a um disco lento. Por que está demorando 17 ms para abrir?
Eu testei 10 vezes em um sistema ocioso e o tempo é muito consistente.
$ 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
Desde a versão 4.12 do kernel, em CPUs x86 com suporte para APERF / MPERF MSRs , há um pequeno atraso na abertura
/proc/cpuinfo
para garantir que as frequências da CPU sejam informadas com precisão (ou pelo menos não mostrem valores muito antigos). Isso foi ligeiramente alterado em cpufreq: x86: Faz com que scaling_cur_freq se comporte mais como esperado (4.13, com atrasos aumentados) e novamente em x86 / CPU: Sempre mostra a frequência atual da CPU em /proc/cpuinfo (4.14, com atrasos reduzidos).