Forum: Ruby profiling question

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
skaes (Guest)
on 2005-12-07 17:18
(Received via mailing list)
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
matz (Guest)
on 2005-12-07 17:54
(Received via mailing list)
Hi,

In message "Re: profiling question"
    on Thu, 8 Dec 2005 00:17:28 +0900, Stefan K. 
<removed_email_address@domain.invalid>
writes:

|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.

It's a bug.  I have checked in the fix to the CVS repository.
Thank you.

							matz.
skaes (Guest)
on 2005-12-07 18:07
(Received via mailing list)
Yukihiro M. wrote:

>|the defining class instead.
>
Wow. That was quick. Thanks very much.

-- stefan kaes

http://railsexpress.de/blog
This topic is locked and can not be replied to.