Mauricio Fernandez wrote: > On Fri, Aug 18, 2006 at 06:05:12AM +0900, John Lam wrote: >> I was wondering if anyone had taken a look at what % of time that ruby >> spends doing method dispatch? >> >> I'll eventually do the experiments myself, but I wanted to check with >> y'all to see if someone had already done some investigations. It would >> be an interesting experiment to see how much you can improve method >> dispatch performance by caching the reference to the method call >> target, and invalidating it when the call context changes. > > The current implementation has a method cache whose hit rate is above 95% or > so (don't remember the exact figure; it's not hard to reproduce anyway) --- > full method lookups are relatively rare. > > Method dispatching is still fairly slow, though; I once measured that it took > some ~200 instructions to run a CFUNC, and about half as much with YARV. > Last time I read YARV's sources, it didn't have inline method caches (but it > was caching constants, IIRC), but it's been a while and they might have been > implemented meanwhile. > I'm about to re-post my profiling of Ruby on a moderate-sized "Matrix" benchmark. I'll post the link as soon as I get it re-run.