Actions
Feature #8366
openException.message take time to execute depending on the instance variables
Status:
Open
Assignee:
-
Target version:
-
Description
I am seeing very interesting and catastrophic behavior with ruby, see the code below
class ExceptionTest
def test
@result = [0]*500000
begin
no_such_method
rescue Exception => ex
puts "before #{ex.class}"
st = Time.now
ex.message
puts "after #{Time.now-st} #{ex.message}"
end
end
end
ExceptionTest.new.test
Ideally ex.message should not take any time to execute and hence Time taken should be in ms, but here is the output
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.4.2]
before NameError
after 0.462443 undefined local variable or method `no_such_method' for #<ExceptionTest:0x007fc74a84e4f0>
If I assign [0]*500000
to a local variable instead of instance variable e.g. result = [0]*500000
it runs as expected
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.4.2]
before NameError
after 2.8e-05 undefined local variable or method `no_such_method' for #<ExceptionTest:0x007ff59204e518>
It looks like somehow ex.message
is looping thru the instance variables, why it would do so, please enlighten me!
I have tried it on ruby ruby-1.9.2-p290, ruby-1.9.1-p376 and whatever version the ruby on codepad.org is.
Actions
Like0
Like0Like0Like0Like0Like0Like0Like0