From: normalperson@... Date: 2014-02-18T20:32:50+00:00 Subject: [ruby-core:60834] [ruby-trunk - misc #9188] r43870 make benchmark/bm_so_k_nucleotide.rb slow Issue #9188 has been updated by Eric Wong. Eric Wong wrote: > The design is based on st, but uses linked-list of cache-sized arrays > for chaining, so it's as if each bucket is an st-packed array. Fwiw, I don't think this is a good design for our internal data structures. I'll experiment with others in a few weeks/months where the lookup node is embedded in the struct itself. It would use offsetof (via container_of macro) to get back the original object, meaning we avoid extra pointer chasing. This won't be good for things which use VALUEs as keys, but probably good for method tables. I'm not sure if we can/should change hash.c and its st.c usage, yet, due to public API compatibility. ---------------------------------------- misc #9188: r43870 make benchmark/bm_so_k_nucleotide.rb slow https://bugs.ruby-lang.org/issues/9188#change-45249 * Author: Narihiro Nakamura * Status: Closed * Priority: Normal * Assignee: Aman Gupta * Category: core * Target version: 2.1.0 ---------------------------------------- Hi. I think r43870 make benchmark/bm_so_k_nucleotide.rb slow. r43870 % time ./miniruby ./benchmark/bm_so_k_nucleotide.rb ./miniruby ./benchmark/bm_so_k_nucleotide.rb 1.70s user 0.01s system 99% cpu 1.718 total r43869 % time ./miniruby ./benchmark/bm_so_k_nucleotide.rb ./miniruby ./benchmark/bm_so_k_nucleotide.rb 1.52s user 0.03s system 99% cpu 1.559 total -- http://bugs.ruby-lang.org/