[#6864] ruby 1.8.4 rc breaks alias_method/rails in bad ways — "Ara.T.Howard" <ara.t.howard@...>

20 messages 2005/12/09
[#6870] Re: ruby 1.8.4 rc breaks alias_method/rails in bad ways — =?ISO-8859-15?Q?Florian_Gro=DF?= <florgro@...> 2005/12/12

Ara.T.Howard wrote:

[#6872] Re: ruby 1.8.4 rc breaks alias_method/rails in bad ways — ara.t.howard@... 2005/12/12

On Tue, 13 Dec 2005, [ISO-8859-15] Florian Growrote:

[#6873] Re: ruby 1.8.4 rc breaks alias_method/rails in bad ways — James Edward Gray II <james@...> 2005/12/12

On Dec 12, 2005, at 1:19 PM, ara.t.howard@noaa.gov wrote:

[#6874] Re: ruby 1.8.4 rc breaks alias_method/rails in bad ways — ara.t.howard@... 2005/12/12

On Tue, 13 Dec 2005, James Edward Gray II wrote:

[#6891] Time.utc! and Time.localtime! — Daniel Hobe <hobe@...>

Writing a script yesterday I found out, much to my surprise, that the

16 messages 2005/12/14

[#6918] change to yaml in 1.8.4 — ara.t.howard@...

14 messages 2005/12/16

[#6934] 1.8.x, YAML, and release management — Ryan Davis <ryand-ruby@...>

I'm concerned that 1.8.3's acceptance of non-backwards-compatible

28 messages 2005/12/18

[#6996] Problems building 1.8.4 with VS8 C++ Express Edition (cl 14.00) — Austin Ziegler <halostatue@...>

Visual Studio C++ 2005 Express Edition (VS 8.0)

20 messages 2005/12/27

profiling class methods

From: Stefan Kaes <skaes@...>
Date: 2005-12-07 05:46:53 UTC
List: ruby-core #6857
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
==========================================================================================



In This Thread

Prev Next