From: Stefan Kaes Date: 2005-12-08T00:17:28+09:00 Subject: profiling question During profiling some code using ruby 1.8.2 and standard profiler, I have discovered that class method execution time doesn't get attributed to the class where the method is defined. Instead it gets attributed to the class of the object issuing the call. This differs from the way instance methods are attributed. I'd expect that time gets attributed to the defining class instead. I wonder whether this is by design and expected behavior, or a bug. To verify this, you can run the following code through the profiler and run grep -e 'foo|bar' on the result. ========================================================================================== class Base def self.foo 100.times {|n| n-1} end def bar 100.times {|n| n/1} end end class A < Base end class B < Base end class C < Base def self.foo 100.times {|n| n+1} end def bar 100.times {|n| n*1} end end a = A.new b = B.new c = C.new a.class.foo b.class.foo c.class.foo a.bar b.bar c.bar ========================================================================================== -- stefan