M. Edward (Ed) Borasky wrote:
> 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.
> 
> 
All done and uploaded ... the link is

http://rubyforge.org/cgi-bin/viewvc.cgi/MatrixBenchmark/?root=cougar

I re-ran this in single-user mode, so there is little interference from
X, etc.