diff options
author | thenewone <[email protected]> | 2025-08-13 12:06:35 +0300 |
---|---|---|
committer | thenewone <[email protected]> | 2025-08-13 12:28:11 +0300 |
commit | eae9e54e2d08729a6123b3f379144c07045c200d (patch) | |
tree | 14d9e12a17ca023998d42ed352a451a98aace1d0 /yql/essentials/tests | |
parent | 2ccb4851076061f0aa188ad06b83601dc6571c7c (diff) |
Don't use dynamic cast if static_cast is enough
In case when TTsonStructBase inherited non-virtually (which appears,
by my measurements, in 2/3 cases) static_cast to derived class
seems to work fine.
This gives improvement from:
```
BenchmarkEncode<TFlatStructLite> 4458 ns 4459 ns 153900 items_per_second=224.285k/s
BenchmarkEncode<TFlatStructHeavy> 4392 ns 4392 ns 156537 items_per_second=227.663k/s
BenchmarkEncode<TDeepStructLite> 41765 ns 41761 ns 16616 items_per_second=23.9456k/s
BenchmarkEncode<TDeepStructHeavy> 9488 ns 9487 ns 73414 items_per_second=105.405k/s
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
```
BenchmarkEncode<TFlatStructLite> 2511 ns 2511 ns 255493 items_per_second=398.19k/s
BenchmarkEncode<TFlatStructHeavy> 2614 ns 2614 ns 275356 items_per_second=382.587k/s
BenchmarkEncode<TDeepStructLite> 19911 ns 19911 ns 33934 items_per_second=50.2243k/s
BenchmarkEncode<TDeepStructHeavy> 5578 ns 5578 ns 127230 items_per_second=179.292k/s
BenchmarkDecode<TFlatStructLite> 20227 ns 20224 ns 36001 items_per_second=49.4471k/s
BenchmarkDecode<TFlatStructHeavy> 19402 ns 19398 ns 35820 items_per_second=51.5512k/s
BenchmarkDecode<TDeepStructLite> 51096 ns 51091 ns 10000 items_per_second=19.5728k/s
BenchmarkDecode<TDeepStructHeavy> 33854 ns 33854 ns 22125 items_per_second=29.5388k/s
```
Part 5 of https://nda.ya.ru/t/E9Ji-1bm7Gwv6c
commit_hash:d4d35a26a8872ed5d905c6ba878ad50b93a62d79
Diffstat (limited to 'yql/essentials/tests')
0 files changed, 0 insertions, 0 deletions