# 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.
