Trying to debug nixos-rebuild slowness, `trace`-ing `currentTime` gives same value

Hello, I’m trying to pinpoint what’s causing slowness in my nixos-rebuild switch (currently it takes over 4 minutes on a fairly new and high speed machine).

I’m using builtins.trace builtins.currentTime via independent calls at each profile site but it prints the exact same value everywhere.

What am I doing wrong … ?

trace: 1779059254 doing imports
trace: 1779059254 finding deepest network.nix
trace: 1779059254 finding deepest kernel.nix
trace: 1779059254 finding deepest config.nix
trace: 1779059254 finding deepest config.nix
trace: 1779059254 finding deepest config.nix
building the system configuration...
trace: 1779059259 doing imports
trace: 1779059259 finding deepest network.nix
trace: 1779059259 finding deepest kernel.nix
trace: 1779059259 finding deepest config.nix
trace: 1779059259 finding deepest config.nix
trace: 1779059259 finding deepest config.nix
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
evaluation warning: The xorg package set has been deprecated, 'xorg.xfd' has been renamed to 'xfd'
building '/nix/store/v5j425h7r9x59fssh9sa5hv947pnlval-config-creation-time.drv'...
trace: 1779059259 finding deepest static_ip_multiplier.nix
trace: 1779059259 doing imports
trace: 1779059259 finding deepest network.nix
trace: 1779059259 finding deepest kernel.nix
trace: 1779059259 finding deepest config.nix
trace: 1779059259 finding deepest config.nix
trace: 1779059259 finding deepest config.nix
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
evaluation warning: The xorg package set has been deprecated, 'xorg.xfd' has been renamed to 'xfd'
trace: 1779059259 finding deepest static_ip_multiplier.nix
trace: 1779059259 doing imports
trace: 1779059259 finding deepest network.nix
trace: 1779059259 finding deepest kernel.nix
trace: 1779059259 finding deepest config.nix
trace: 1779059259 finding deepest config.nix
trace: 1779059259 finding deepest config.nix
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
evaluation warning: The xorg package set has been deprecated, 'xorg.xfd' has been renamed to 'xfd'
trace: 1779059259 finding deepest static_ip_multiplier.nix
trace: 1779059259 doing imports
trace: 1779059259 finding deepest network.nix
trace: 1779059259 finding deepest kernel.nix
trace: 1779059259 finding deepest config.nix
trace: 1779059259 finding deepest config.nix
trace: 1779059259 finding deepest config.nix
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
evaluation warning: The xorg package set has been deprecated, 'xorg.xfd' has been renamed to 'xfd'
trace: 1779059259 finding deepest static_ip_multiplier.nix
trace: 1779059259 doing imports
trace: 1779059259 finding deepest network.nix
trace: 1779059259 finding deepest kernel.nix
trace: 1779059259 finding deepest config.nix
trace: 1779059259 finding deepest config.nix
trace: 1779059259 finding deepest config.nix
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
evaluation warning: The xorg package set has been deprecated, 'xorg.xfd' has been renamed to 'xfd'
trace: 1779059259 finding deepest static_ip_multiplier.nix
trace: 1779059259 doing imports
trace: 1779059259 finding deepest network.nix
trace: 1779059259 finding deepest kernel.nix
trace: 1779059259 finding deepest config.nix
trace: 1779059259 finding deepest config.nix
trace: 1779059259 finding deepest config.nix
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
trace: 1779059259
evaluation warning: The xorg package set has been deprecated, 'xorg.xfd' has been renamed to 'xfd'



currentTime (integer)

Return the Unix time at first evaluation. Repeated references to that name re-use the initially obtained value.

1 Like

Try using the built-in evaluation profiler: Evaluation profiler - Nix 2.34.7 Reference Manual

3 Likes