libexpr: allocate the Exprs themselves in Exprs::alloc#14472
libexpr: allocate the Exprs themselves in Exprs::alloc#14472xokdvium merged 1 commit intoNixOS:masterfrom
Conversation
|
I don't know how to make sense of these performance numbers: For parsing, we see
The only number that I have an explanation for is -13% cache misses. That could make sense since we're now allocating Overall performance numbers when we look at evaluation of a NixOS configuration are
|
|
I tried putting |
1d1ebcb to
a82f09f
Compare
|
I forgot parser-state.hh. good catch. |
|
@Radvendii as to the instruction count:
|
Maybe we could get even more performance!
Good thought. I'll try this later today. |
And do be clear, feel free to just keep the 3-commit history, and I don't mind merging the first 2 steps (current first commit and the new in-between commit) in the meantime. |
a82f09f to
c693e86
Compare
|
Okay. Things are now in three commmits. Only the last one causes the performance changes. |
c693e86 to
0dff461
Compare
|
Great, thanks @Radvendii. Make a PR with the first two commits (with the good perf numbers), and I am happy merging it right away. |
0dff461 to
b2f0472
Compare
|
This is proving quite hard to debug (increased instruction count isn't even reproducible with So I think it's best to just move on. |
|
Glad it's merged! |
Motivation
for big-picture motivation, see the tracking issue
This PR moves the
Exprobjects intoExprs::alloc. In truth, eventually we want them to live outside of the allocator in vectors.However, we're in a bit of a catch 22. Part of the reason we want to move the Exprs into vectors is so they don't get leaked so that we can do fuzz testing. But it's a big enough change that we're going to want to be able to fuzz-test it!
This is my way of snipping that loop. It gets rid of the leak so we can fuzz test the bigger changes.
Context
Add 👍 to pull requests you find important.
The Nix maintainer team uses a GitHub project board to schedule and track reviews.