while true; do time GUIX_PROFILING=gc ./the-unoptimised-baseN-guix/bin/guix build -d pigx --no-grafts; done # First run removed /gnu/store/fq6x8d2vcm6sbjkimg7g8kcgb4c5xv1b-pigx-0.0.3.drv Garbage collection statistics: heap size: 93.85 MiB allocated: 325.20 MiB GC times: 18 time spent in GC: 3.69 seconds (24% of user time) real 0m15,066s user 0m15,149s sys 0m0,709s /gnu/store/fq6x8d2vcm6sbjkimg7g8kcgb4c5xv1b-pigx-0.0.3.drv Garbage collection statistics: heap size: 93.85 MiB allocated: 325.19 MiB GC times: 18 time spent in GC: 3.70 seconds (24% of user time) real 0m15,924s user 0m15,695s sys 0m0,836s /gnu/store/fq6x8d2vcm6sbjkimg7g8kcgb4c5xv1b-pigx-0.0.3.drv Garbage collection statistics: heap size: 93.85 MiB allocated: 325.20 MiB GC times: 18 time spent in GC: 3.66 seconds (24% of user time) real 0m15,369s user 0m15,339s sys 0m0,704s /gnu/store/fq6x8d2vcm6sbjkimg7g8kcgb4c5xv1b-pigx-0.0.3.drv Garbage collection statistics: heap size: 93.85 MiB allocated: 325.20 MiB GC times: 18 time spent in GC: 3.69 seconds (25% of user time) real 0m14,889s user 0m15,066s sys 0m0,679s Summary. (define (avg . r) (/ (apply + r) (length r))) (define (stddev . r) (* (/ (length r) (- (length r) 1)) (sqrt (apply avg (map (lambda (x) (expt (- x (apply avg r)) 2)) r))))) (define %time/gc '(3.69 3.70 3.66 3.69)) (values (apply avg %time/gc) (apply stddev %time/gc)) $7 = 3.685 $8 = 0.01999999999999997 (define %real '(15.066 15.924 15.369 14.889)) (define %user '(15.149 15.695 15.339 15.066)) (define %sys '(0.709 0.836 0.704 0.679)) (values (apply avg %real) (apply stddev %real)) $1 = 15.312000000000001 $2 = 0.5237633053202561 (values (apply avg %user) (apply stddev %user)) $3 = 15.31225 $4 = 0.32283655995634153 (values (apply avg %sys) (apply stddev %sys)) $5 = 0.732 $6 = 0.08148074073737369 while true; do time GUIX_PROFILING=gc ./the-optimised-baseN-guix/bin/guix build -d pigx --no-grafts; done /gnu/store/jfjfg7dnis7v6947a0rncxdn3y1nz0ad-pigx-0.0.3.drv Garbage collection statistics: heap size: 93.85 MiB allocated: 317.83 MiB GC times: 18 time spent in GC: 3.71 seconds (22% of user time) real 0m17,646s user 0m16,539s sys 0m0,705s /gnu/store/jfjfg7dnis7v6947a0rncxdn3y1nz0ad-pigx-0.0.3.drv Garbage collection statistics: heap size: 93.85 MiB allocated: 317.83 MiB GC times: 18 time spent in GC: 3.63 seconds (22% of user time) real 0m18,733s user 0m16,698s sys 0m0,691s /gnu/store/jfjfg7dnis7v6947a0rncxdn3y1nz0ad-pigx-0.0.3.drv Garbage collection statistics: heap size: 93.85 MiB allocated: 317.82 MiB GC times: 18 time spent in GC: 3.72 seconds (24% of user time) real 0m15,429s user 0m15,448s sys 0m0,696s /gnu/store/jfjfg7dnis7v6947a0rncxdn3y1nz0ad-pigx-0.0.3.drv Garbage collection statistics: heap size: 93.85 MiB allocated: 317.82 MiB GC times: 18 time spent in GC: 3.70 seconds (24% of user time) real 0m15,292s user 0m15,315s sys 0m0,635s (define %time/gc '(3.71 3.63 3.72 3.70)) (define %time/real '(17.646 18.733 15.429 15.292)) (define %time/user '(16.539 16.698 15.448 15.315)) (define %time/sys '(0.705 0.691 0.696 0.635)) (values (apply avg %time/gc) (apply stddev %time/gc)) $17 = 3.6900000000000004 $18 = 0.04714045207910329 (values (apply avg %time/real) (apply stddev %time/real)) $19 = 16.775000000000002 $20 = 1.9554380015172506 (values (apply avg %time/user) (apply stddev %time/user)) $21 = 16.0 $22 = 0.8304360300468671 (values (apply avg %time/sys) (apply stddev %time/sys)) $23 = 0.6817499999999999 $24 = 0.03660449274186007 Tests show neither a decrease nor an increase in timings. Now looking at the allocation count: The heap size before: heap size: 93.85 MiB allocated: 325.20 MiB The heap size after: heap size: 93.85 MiB allocated: 317.82 MiB A small improvement (-2.3%).