summaryrefslogtreecommitdiffstats
path: root/library/cpp/yt/assert/assert.cpp
diff options
context:
space:
mode:
authorthenewone <[email protected]>2025-08-06 18:29:11 +0300
committerthenewone <[email protected]>2025-08-06 18:47:08 +0300
commita7b92fa6aa8979ff6da2ae0b16c1e3d79c04b95e (patch)
treea856eddbce995f49b3349393c984b367b81913ab /library/cpp/yt/assert/assert.cpp
parent29b6a8bf5b9b94583b9e983927f937f1139cf680 (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