If you have a very simple script that calls Set.new anywhere, it precludes the text call graph report from showing correct results for the Global level.
require 'ruby-prof'
require 'set'
result =
RubyProf.profile {
Set.new()
}
printer = RubyProf::GraphPrinter.new(result)
printer.print(STDOUT)
snippet of report:
0.00% 0.00% 0.00 0.00 0.00 0.00 0 Global#[No method]
I would expect to see a call to Class.new listed here or something. When instantiating other classes, I do see the correct results.
20704656: line :65 FalseClass#(null) (0)
20704656: c-call :65 Class#new (2088896400)
20704656: c-call :65 Class#(null) (2088881210)
20704656: c-return :65 Class#(null) (2088881210)
20704656: call :67 Class#initialize (2065668160)
20704656: line :68 Class#initialize (2065668160)
20704656: c-call :68 Class#new (2088896400)
20704656: c-call :68 Class#(null) (2081122410)
20704656: c-return :68 Class#(null) (2081122410)
20704656: c-call :68 Class#initialize (2081129760)
20704656: c-return :68 Class#initialize (2081129760)
20704656: c-return :68 Class#new (2088896400)
20704656: line :70 Class#initialize (2065668160)
20704656: c-call :70 Class#nil? (2088193350)
20704656: c-return :70 Class#nil? (2088193350)
20704656: c-return :65 Class#new (2088896400)