Ruby-prof with graph printer and sorting by self puts out total percentages higher than 100%

410 views Asked by At

If I run

ruby-prof -p graph -s self aggregate.rb > graph.txt

the first few lines of my graph.txt will look like:

Total Time: 40.092432

  %total   %self     total      self      wait     child            calls   Name
--------------------------------------------------------------------------------
                      5.16      5.16      0.00      0.00      98304/98304     Object#totalDurationFromFile
 100.00% 100.00%      5.16      5.16      0.00      0.00            98304     IO#read
--------------------------------------------------------------------------------
                      4.91      4.91      0.00      0.00      98304/98304     <Class::IO>#new
  95.17%  95.17%      4.91      4.91      0.00      0.00            98304     File#initialize
--------------------------------------------------------------------------------
                      0.37      0.19      0.00      0.17      32768/32769     Hash#each
                     28.89      4.67      0.00     24.22          1/32769     Object#readFiles
 566.81%  94.24%     29.26      4.86      0.00     24.39            32769     Array#collect
                     14.71      1.98      0.00     12.73      98304/98304     Object#totalDurationFromFile
                      9.11      0.64      0.00      8.48     98304/131072     Class#new
                      0.39      0.39      0.00      0.00     98304/196609     <Class::File>#basename
                      0.00      0.17      0.00      0.00    98304/1202331     Object#main
--------------------------------------------------------------------------------
                      3.76      3.35      0.00      0.42    524288/524288     Module#class_eval
  72.94%  64.85%      3.76      3.35      0.00      0.42           524288     Module#define_method
                      0.42      0.42      0.00      0.00    524288/524288     BasicObject#singleton_method_added

I don't think that this is specific to my script aggregate.rb. Therefore, I am leaving the source code out for the sake of brevity.

Question is: Why are there percentages higher than 100% in the %total column? Is sorting by self not allowed with the graph printer? Is this a bug or did I overlook something. Help greatly appreciated.

Thanks!

1

There are 1 answers

1
mrks On BEST ANSWER

Have you checked if this change on Github resolves the issue? Apparently, the gem version is out of date and/or does not include that change (as it would also increase the number of decimal places to three).