| 28 Jun 2023 |
Mic92 | Redacted or Malformed Event | 13:12:09 |
nbp | Mic92: Nice password! Thanks for sharing ;) | 13:13:45 |
pennae | there 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 either | 13:14:37 |
Mic92 | How do you measure stuff? | 13:15:24 |
Mic92 | I find that super hard with nix. | 13:15:32 |
Mic92 | * How do you profile stuff? | 13:16:05 |
pennae | mostly just enabling/disabling options and running a lot of clean uncached evals | 13:16:12 |
Mic92 | Sol It's a bit of a blind flight. NinjaTrappeur added enough instrumentation to nix to get proper stack samples. | 13:17:22 |
Mic92 | The flamegraphs from that looked way more useful. | 13:17:33 |
Mic92 | * So, it's a bit of a blind flight. NinjaTrappeur added enough instrumentation to nix to get proper stack samples. | 13:17:55 |
pennae | back 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 that | 13:18:41 |
@ninjatrappeur:alternativebit.fr | The function-based profiler? | 13:19:01 |
@ninjatrappeur:alternativebit.fr | andi- improved my not-so-fonctional ebpf profiler. I lost the branch though. | 13:19:28 |
@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 | The 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- | 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 | fwiw disabling docs on our current system makes no significant difference in eval time, disabling the spit options build adds 30% | 13:22:24 |
Sandro 🐧 | 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- | new one, proper nix-internal call frames and all | 13:30:24 |
Sandro 🐧 | 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 🐧 | 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 | split options, yes | 13:30:49 |
Sandro 🐧 | so setting documentation.nixos.options.splitBuild to false improves eval time if I don't build docs? | 13:47:18 |
pennae | if 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 🐧 | ah, good that we cleared that up | 14:33:17 |
pennae | if it ever did speed up the build to set it to false we should remove it again :) | 14:37:23 |
pennae | the infra needed to make it works is a royal pain, if we can get away without it then good riddance | 14:37:43 |
sterni | do we have an overview of what markdown extensions/custom stuff you can use in the manual somewhere? | 18:04:34 |
sterni | ah in the obvious place, nice :) | 18:05:17 |
sterni | 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 |