Feature #5789
closedOptimize st_table
Description
I prepared couple of patches to optimize st_table performance.
First patch (st_func.patch) is a trivial translation of some macroses to functions,
but it gives ~4% of improvement on gcc-4.5.2 32bit (sorry for not testing other environments).
Second patch (st_pack_table) provides packing for tables sized upto 12 entries.
It gives countable memory footprint reduction and measurable performance improvement
(~8% compared to trunk, ~4% compared to st_func.patch).
Note: synthetic benchmark could show some performance degradation, so that there
could be some exotic workload, which suffer from patch.
But realworld application (and even make check) runs uniformly faster.
Correlated github pull requests are https://github.com/ruby/ruby/pull/70 and https://github.com/ruby/ruby/pull/71
Files
Updated by funny_falcon (Yura Sokolov) almost 13 years ago
- File st_pack_tables.patch st_pack_tables.patch added
Updated by funny_falcon (Yura Sokolov) almost 13 years ago
- File st_pool_alloc.patch st_pool_alloc.patch added
Another approach to st_table optimization: use lightweight pool allocator for st_table, st_table_entry and bins of smallest size.
http://bugs.ruby-lang.org/attachments/2352/st_pool_alloc.patch
Updated by funny_falcon (Yura Sokolov) almost 13 years ago
- File st_pool_alloc_pack.patch st_pool_alloc_pack.patch added
Updated by funny_falcon (Yura Sokolov) almost 13 years ago
- File st_pool_alloc_pack.patch st_pool_alloc_pack.patch added
Updated by naruse (Yui NARUSE) almost 13 years ago
- Status changed from Open to Closed
Merged in r34309-r34314