Issue #9188 has been updated by Eric Wong.


 Eric Wong <normalperson / yhbt.net> 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/