SASADA Koichi <ko1 / atdot.net> wrote:
> (2014/03/18 8:03), Eric Wong wrote:
> > Global method cache is power-of-two-sized; so it should have a good hash
> > function.  In vm_method.c:
> 
> FYI (maybe you know): funny_fulcon proposed to replace global cache by
> per-class cache.
> https://bugs.ruby-lang.org/issues/9262

Yes, that issue is for growing global cache, though.  It seems per-class
cache idea is dead for now.

Long term hope is to get rid of the global cache and only use inline
cache.

ihash[1] with hash-based IDs[2] should be faster than the current st.c +
incrementing IDs.  However my primary goal of ihash was memory saving,
but speed should happen because of reduced indirection.

I will also try RB tree (steal rb.h from jemalloc) or splay tree
(*BSD sys/tree.h) for method tables/constants.  id/symbol table
might be too big for a binary search tree.


[1] - https://bugs.ruby-lang.org/issues/9614
      git://80x24.org/ruby.git ihash5

[2] - not implemented, yet, probably not going to touch parse.y
      until Symbol GC patch is merged.