!VRULIdgoKmKPzJZzjj:nixos.org

Nix Hackers

858 Members
For people hacking on the Nix package manager itself186 Servers

Load older messages


SenderMessageTime
29 Jul 2025
@Ericson2314:matrix.orgJohn Ericson Mic92 Sergei Zimmerman (xokdvium) OK yeah firefox parses 4 times slower 20:39:21
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)
In reply to @Ericson2314:matrix.org
Mic92 Sergei Zimmerman (xokdvium) OK yeah firefox parses 4 times slower
So doing the lazy thing is worth it certainly.
20:40:10
@Ericson2314:matrix.orgJohn EricsonOK!20:40:17
@Ericson2314:matrix.orgJohn Ericson Sergei Zimmerman (xokdvium): I wonder if I should use mutable since it is morally pure 20:41:03
@Ericson2314:matrix.orgJohn Ericson not good for concurrency const 20:41:13
@joerg:thalheim.ioMic92
In reply to @Ericson2314:matrix.org
Mic92: any idea where we would get a nice meaty real-world structured attrs derivation?
Anything in stdenv has to be parsed/generated multiple times. Bootstrapping in general takes most of the time in any eval flamegraph I have seen so far.
20:41:19
@Ericson2314:matrix.orgJohn Ericson but is good for "are we changing it?" const 20:41:21
@joerg:thalheim.ioMic92So this Code makes parsing 4x slower? https://github.com/NixOS/nix/commit/7f0ff4957e634de8aa2edb3cac5e79375c60514820:46:04
@joerg:thalheim.ioMic92Surprising because the throughput of our current parser is slower than what I expect a JSON parser to be able to pull off.20:47:48
@joerg:thalheim.ioMic92* Surprising because the throughput of our current derivation parser is slower than what I expect a JSON parser to be able to pull off.20:48:04
@Ericson2314:matrix.orgJohn Ericson Mic92: oh wait tbh I was doing unoptimized builds 20:51:13
@Ericson2314:matrix.orgJohn Ericsonthat doesn't mean much20:51:19
@Ericson2314:matrix.orgJohn EricsonI opened up https://github.com/NixOS/nix/issues/13573 regardless20:57:19
@Ericson2314:matrix.orgJohn Ericsonsince we can make GC faster by not parsing the entire derivation20:57:28
@Ericson2314:matrix.orgJohn Ericson

OK optimized before

BM_ParseRealDerivationFile/hello         6814 ns         6791 ns       104081 bytes_per_second=247.735Mi/s
BM_ParseRealDerivationFile/firefox      31529 ns        31420 ns        22281 bytes_per_second=486.429Mi/s
21:18:01
@Ericson2314:matrix.orgJohn Ericson
BM_ParseRealDerivationFile/hello         6952 ns         6929 ns       102364 bytes_per_second=242.772Mi/s
BM_ParseRealDerivationFile/firefox      71569 ns        71292 ns         9695 bytes_per_second=214.381Mi
21:18:27
@Ericson2314:matrix.orgJohn Ericsonoptimized after21:18:29
@Ericson2314:matrix.orgJohn Ericson4x to 2x21:18:39
@Ericson2314:matrix.orgJohn Ericsonnot good enough21:18:42
@joerg:thalheim.ioMic92
In reply to @Ericson2314:matrix.org
I opened up https://github.com/NixOS/nix/issues/13573 regardless
Is it not all the store references we care about in those derivations, not just outpaths?
21:22:57
@Ericson2314:matrix.orgJohn Ericson Mic92: I think it is just looking to keep derivations pointing to live store paths? 21:23:25
@Ericson2314:matrix.orgJohn EricsonI could be wrong21:23:33
@joerg:thalheim.ioMic92https://github.com/NixOS/nix/blob/b062730665d120088ab6c3e154b4545f95d2fa4b/src/libstore/gc.cc#L76721:26:42
@joerg:thalheim.ioMic92Ah but wait this for keepOutputs21:31:24
@joerg:thalheim.ioMic92This is not the same as keep derivations, no?21:31:55
@Ericson2314:matrix.orgJohn Ericson Mic92: I am talking about the queryOutput stuff in there 21:35:18
@Ericson2314:matrix.orgJohn Ericson Mic92: oh wow, it's already done via the database in the local store case! 21:37:58
@Ericson2314:matrix.orgJohn Ericson see queryStaticPartialDerivationOutputMap 21:38:03
@Ericson2314:matrix.orgJohn Ericsonhttps://github.com/NixOS/nix/issues/13573#issuecomment-313415725721:40:17
@Ericson2314:matrix.orgJohn Ericsonso....why the hell is it so slow?21:40:23

Show newer messages


Back to Room ListRoom Version: 6