[Ironruby-core] Code Review: rubyopt

Tomas Matousek Tomas.Matousek at microsoft.com
Mon Jul 14 21:28:58 EDT 2008

tfpt review "/shelveset:rubyopt;REDMOND\tomat"

Misc Ruby optimizations.

  -     Optimizes method lookup:
  1)    Adds cache for unsuccessful CLR member lookup. CLR types are read-only and so the knowledge of a member lookup failure could be stored for the next lookup. This saves about 10% of allocated memory since unsuccessful lookups in reflection allocate some MethodInfo arrays.
  2)    Stores successfully resolved CLR members in the module method table. We don't need to create a RubyMethodGroupInfo each time we find CLR member and also if we find it once it is available the next time as well (unless it is removed/modified).
  3)    When a new method is added into a module/class and it doesn't hide a method of the same name that was already used in dynamic sites, the sites don't need to be invalidated.
  -     Adds some perf counters.
  -     Fixes message in method_missing.
  -     Refactors RubyBinder a bit, especially super-call action.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: rubyopt.diff
Type: application/octet-stream
Size: 50586 bytes
Desc: rubyopt.diff
URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20080714/9b99fe0b/attachment-0001.obj>

More information about the Ironruby-core mailing list