!avYyleMexqjFHoqrME:nixos.org

Nix Documentation

439 Members
Discussion about documentation improvements around the Nix ecosystem93 Servers

Load older messages


SenderMessageTime
28 Jun 2023
@joerg:thalheim.ioMic92Redacted or Malformed Event13:12:09
@nbp:mozilla.orgnbp Mic92: Nice password! Thanks for sharing ;) 13:13:45
@pennae:matrix.eno.spacepennaethere may still be gains to be had with pre-built docs that aren't necessarily accurate to the current system (turning of nixos docs and adding a cached docs package)? haven't benchmarked in a while either13:14:37
@joerg:thalheim.ioMic92How do you measure stuff?13:15:24
@joerg:thalheim.ioMic92I find that super hard with nix.13:15:32
@joerg:thalheim.ioMic92 * How do you profile stuff?13:16:05
@pennae:matrix.eno.spacepennaemostly just enabling/disabling options and running a lot of clean uncached evals13:16:12
@joerg:thalheim.ioMic92Sol It's a bit of a blind flight. NinjaTrappeur added enough instrumentation to nix to get proper stack samples.13:17:22
@joerg:thalheim.ioMic92The flamegraphs from that looked way more useful.13:17:33
@joerg:thalheim.ioMic92 * So, it's a bit of a blind flight. NinjaTrappeur added enough instrumentation to nix to get proper stack samples.13:17:55
@pennae:matrix.eno.spacepennaeback then we also used the older nix profiling suite (NIX_COUNT_CALLS? was that the name?) to find the hot spot, but that didn't really help for much more than that13:18:41
@ninjatrappeur:alternativebit.fr@ninjatrappeur:alternativebit.frThe function-based profiler?13:19:01
@ninjatrappeur:alternativebit.fr@ninjatrappeur:alternativebit.fr andi- improved my not-so-fonctional ebpf profiler. I lost the branch though. 13:19:28
@ninjatrappeur:alternativebit.fr@ninjatrappeur:alternativebit.fr * andi- improved my not-so-fonctional ebpf profiler into something pretty fonctional. I lost the branch though. 13:19:37
@ninjatrappeur:alternativebit.fr@ninjatrappeur:alternativebit.frThe real issue is the viewer, there's too much information in these traces. We were tracing each and every thunk forcing.13:20:06
@andi:kack.itandi-
In reply to @ninjatrappeur:alternativebit.fr
andi- improved my not-so-fonctional ebpf profiler into something pretty fonctional. I lost the branch though.
https://github.com/andir/nix/tree/andir/profiling
13:21:05
@pennae:matrix.eno.spacepennaefwiw disabling docs on our current system makes no significant difference in eval time, disabling the spit options build adds 30%13:22:24
@sandro:supersandro.deSandro 🐧
In reply to @andi:kack.it
https://github.com/andir/nix/tree/andir/profiling
Does that improve the existing tracing or add a new one?
13:30:02
@andi:kack.itandi-new one, proper nix-internal call frames and all13:30:24
@sandro:supersandro.deSandro 🐧
In reply to @pennae:matrix.eno.space
fwiw disabling docs on our current system makes no significant difference in eval time, disabling the spit options build adds 30%
spit options? split options?
13:30:27
@sandro:supersandro.deSandro 🐧
In reply to @andi:kack.it
new one, proper nix-internal call frames and all
you just set NIX_SHOW_TRACE ?
13:30:46
@pennae:matrix.eno.spacepennae split options, yes 13:30:49
@sandro:supersandro.deSandro 🐧so setting documentation.nixos.options.splitBuild to false improves eval time if I don't build docs?13:47:18
@pennae:matrix.eno.spacepennaeif you don't build docs setting it to false makes no difference. if you do build docs settings it to false slows down the build by 30%13:59:48
@sandro:supersandro.deSandro 🐧ah, good that we cleared that up14:33:17
@pennae:matrix.eno.spacepennaeif it ever did speed up the build to set it to false we should remove it again :)14:37:23
@pennae:matrix.eno.spacepennaethe infra needed to make it works is a royal pain, if we can get away without it then good riddance14:37:43
@sternenseemann:systemli.orgsternido we have an overview of what markdown extensions/custom stuff you can use in the manual somewhere?18:04:34
@sternenseemann:systemli.orgsterniah in the obvious place, nice :)18:05:17
@sternenseemann:systemli.orgsterni pennae: fricklerhandwerk: basically if you do this dynamically you have the same problem, but it is even more complicated; you need to map a value to its definition point and we have no overarching semantics that would fix the meaning of that (e.g. unsafeGetAttrPos would be closest, but also doesn't apply for the reasons pennae outlines). Additionally doing it dynamically means that you have to write a treewalker again and that it'll be slower than statically generating docs 18:14:28

Show newer messages


Back to Room ListRoom Version: 6