diff options
| author | thenewone <[email protected]> | 2025-08-06 18:29:11 +0300 |
|---|---|---|
| committer | thenewone <[email protected]> | 2025-08-06 18:47:08 +0300 |
| commit | a7b92fa6aa8979ff6da2ae0b16c1e3d79c04b95e (patch) | |
| tree | a856eddbce995f49b3349393c984b367b81913ab /library/cpp/yt/assert/assert.cpp | |
| parent | 29b6a8bf5b9b94583b9e983927f937f1139cf680 (diff) | |
Avoid creation of hash tables in hot places when it's possible
Preconstruct alias->parameter table once when yson struct meta is build.
Use cheap bitmap for pending members.
This give improvements from:
```
BenchmarkDecode<TFlatStructLite> 24437 ns 24433 ns 29036 items_per_second=40.9277k/s
BenchmarkDecode<TFlatStructHeavy> 24807 ns 24804 ns 29581 items_per_second=40.3154k/s
BenchmarkDecode<TDeepStructLite> 88384 ns 88365 ns 7578 items_per_second=11.3167k/s
BenchmarkDecode<TDeepStructHeavy> 42440 ns 42432 ns 16215 items_per_second=23.5672k/s
```
To:
```
BenchmarkDecode<TFlatStructLite> 21807 ns 21807 ns 30352 items_per_second=45.8565k/s
BenchmarkDecode<TFlatStructHeavy> 21271 ns 21269 ns 31537 items_per_second=47.0164k/s
BenchmarkDecode<TDeepStructLite> 82886 ns 82871 ns 8935 items_per_second=12.067k/s
BenchmarkDecode<TDeepStructHeavy> 34415 ns 34413 ns 19791 items_per_second=29.0585k/s
```
These improvements more notable if other improvements are applied.
Part 4 of https://nda.ya.ru/t/E9Ji-1bm7Gwv6c
commit_hash:d94424316e2b3fcb98e9e249ca688712d53f75b7
Diffstat (limited to 'library/cpp/yt/assert/assert.cpp')
0 files changed, 0 insertions, 0 deletions
