# condiciones: 2026-08-29T19:30:50Z · 7.1.4-artix1-1 · strace 6.19 DEL PROPIO CORPUS (store/3c1fd8c0…-strace) # fuente: hola.c — un main() con stdio/stdlib/string, o sea el caso MAS BARATO posible === cc -O2 -c (gcc 16) === /mnt/vvv/hammer/store/3c1fd8c0fbb20c272c2935d5b5ca63bc51be257c271e96e312ee86ed6886f89d-strace/usr/bin/strace: Process 17960 attached /mnt/vvv/hammer/store/3c1fd8c0fbb20c272c2935d5b5ca63bc51be257c271e96e312ee86ed6886f89d-strace/usr/bin/strace: Process 17971 attached % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ---------------- 80.09 0.048227 24113 2 wait4 7.44 0.004479 4 923 919 readlink 3.00 0.001808 17 105 read 2.30 0.001387 6 228 127 openat 1.28 0.000772 8 92 mmap 1.02 0.000614 87 7 4 execve 0.87 0.000522 5 101 close 0.78 0.000470 4 100 fstat 0.77 0.000466 232 2 clone3 0.77 0.000463 6 67 24 newfstatat 0.37 0.000220 7 31 brk 0.27 0.000165 8 20 mprotect 0.17 0.000100 4 23 15 access 0.11 0.000065 3 19 rt_sigaction 0.10 0.000060 30 2 unlink 0.09 0.000056 18 3 getcwd 0.09 0.000056 5 11 prlimit64 0.09 0.000055 6 8 write 0.09 0.000053 3 14 rt_sigprocmask 0.07 0.000043 3 12 lseek 0.04 0.000026 3 7 getrandom 0.04 0.000022 11 2 munmap 0.04 0.000022 3 6 6 ioctl 0.02 0.000013 4 3 sysinfo 0.02 0.000011 3 3 rseq 0.02 0.000010 3 3 arch_prctl 0.02 0.000010 3 3 set_tid_address 0.02 0.000010 3 3 set_robust_list 0.01 0.000007 3 2 fcntl 0.01 0.000004 3 1 getrusage ------ ----------- ----------- --------- --------- ---------------- 100.00 0.060214 33 1803 1095 total === zig cc -O2 -c (zig 0.16.0) === /mnt/vvv/hammer/store/3c1fd8c0fbb20c272c2935d5b5ca63bc51be257c271e96e312ee86ed6886f89d-strace/usr/bin/strace: Process 17979 attached /mnt/vvv/hammer/store/3c1fd8c0fbb20c272c2935d5b5ca63bc51be257c271e96e312ee86ed6886f89d-strace/usr/bin/strace: Process 17980 attached /mnt/vvv/hammer/store/3c1fd8c0fbb20c272c2935d5b5ca63bc51be257c271e96e312ee86ed6886f89d-strace/usr/bin/strace: Process 17984 attached /mnt/vvv/hammer/store/3c1fd8c0fbb20c272c2935d5b5ca63bc51be257c271e96e312ee86ed6886f89d-strace/usr/bin/strace: Process 17988 attached /mnt/vvv/hammer/store/3c1fd8c0fbb20c272c2935d5b5ca63bc51be257c271e96e312ee86ed6886f89d-strace/usr/bin/strace: Process 17989 attached /mnt/vvv/hammer/store/3c1fd8c0fbb20c272c2935d5b5ca63bc51be257c271e96e312ee86ed6886f89d-strace/usr/bin/strace: Process 17990 attached /mnt/vvv/hammer/store/3c1fd8c0fbb20c272c2935d5b5ca63bc51be257c271e96e312ee86ed6886f89d-strace/usr/bin/strace: Process 17993 attached /mnt/vvv/hammer/store/3c1fd8c0fbb20c272c2935d5b5ca63bc51be257c271e96e312ee86ed6886f89d-strace/usr/bin/strace: Process 18047 attached /mnt/vvv/hammer/store/3c1fd8c0fbb20c272c2935d5b5ca63bc51be257c271e96e312ee86ed6886f89d-strace/usr/bin/strace: Process 18053 attached /mnt/vvv/hammer/store/3c1fd8c0fbb20c272c2935d5b5ca63bc51be257c271e96e312ee86ed6886f89d-strace/usr/bin/strace: Process 18054 attached /mnt/vvv/hammer/store/3c1fd8c0fbb20c272c2935d5b5ca63bc51be257c271e96e312ee86ed6886f89d-strace/usr/bin/strace: Process 18055 attached /mnt/vvv/hammer/store/3c1fd8c0fbb20c272c2935d5b5ca63bc51be257c271e96e312ee86ed6886f89d-strace/usr/bin/strace: Process 18056 attached % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ------------------ 69.79 1.378703 1248 1104 14 futex 25.60 0.505698 101139 5 wait4 1.26 0.024957 2495 10 poll 0.69 0.013629 42 318 80 openat 0.33 0.006426 18 353 mmap 0.31 0.006187 38 162 43 newfstatat 0.18 0.003615 47 76 read 0.17 0.003425 54 63 pread64 0.17 0.003361 17 195 rt_sigprocmask 0.15 0.003003 12 245 close 0.13 0.002634 25 105 29 readlink 0.13 0.002511 179 14 8 execve 0.12 0.002410 15 159 fstat 0.12 0.002312 28 82 mprotect 0.09 0.001870 103 18 munmap 0.09 0.001743 435 4 clone 0.08 0.001520 27 56 brk 0.08 0.001497 748 2 mkdirat 0.07 0.001355 43 31 19 access 0.06 0.001176 4 254 preadv 0.06 0.001096 16 67 rt_sigaction 0.05 0.000936 117 8 clone3 0.03 0.000545 45 12 readv 0.02 0.000492 28 17 set_robust_list 0.02 0.000483 53 9 7 faccessat2 0.02 0.000430 6 69 statx 0.02 0.000353 25 14 write 0.02 0.000342 15 22 prlimit64 0.02 0.000297 22 13 rseq 0.01 0.000277 25 11 madvise 0.01 0.000256 32 8 pipe2 0.01 0.000247 19 13 13 ioctl 0.01 0.000242 16 15 getrandom 0.01 0.000210 30 7 sched_getaffinity 0.01 0.000155 25 6 dup2 0.01 0.000149 18 8 sigaltstack 0.01 0.000147 13 11 lseek 0.01 0.000134 22 6 getdents64 0.00 0.000088 29 3 1 unlinkat 0.00 0.000078 12 6 arch_prctl 0.00 0.000075 18 4 gettid 0.00 0.000073 12 6 set_tid_address 0.00 0.000060 29 2 rename 0.00 0.000048 16 3 ftruncate 0.00 0.000045 22 2 pwritev 0.00 0.000036 17 2 flock 0.00 0.000028 28 1 readlinkat 0.00 0.000022 22 1 renameat 0.00 0.000020 20 1 unlink 0.00 0.000016 5 3 sysinfo 0.00 0.000008 7 1 uname 0.00 0.000005 4 1 getcwd ------ ----------- ----------- --------- --------- ------------------ 100.00 1.975424 547 3608 214 total === reparto de fallos del gcc (ENOENT por buscar cabeceras) === 166 === tiempo de pared del MISMO compilado, sin strace (mínimo/mediana de 7) === cc -O2 -c hola.c min 30.5 ms mediana 33.3 ms zig cc -O2 -c hola.c min 53.6 ms mediana 58.9 ms === lectura === gcc: 1803 syscalls, 1095 con error (61%) — 919 de 923 readlink FALLAN. Al piso medido de 78,7 ns por syscall, 1803 cruces = 0,14 ms sobre 30,5 ms de compilado => el cruce al kernel es el 0,5% del compilado. La tormenta de rutas de T8 vale MILISEGUNDOS por invocación, no minutos. zig cc: 3608 syscalls, sólo 214 con error, pero 1104 futex (70% del tiempo EN syscall) y 5 wait4. Su perfil no es de búsqueda de rutas sino de coordinación entre hilos; el tiempo de syscall que reporta strace -c es espera BLOQUEADA, no CPU.