There's gem chocolate in my profiling peanut butter!


#1

Hi all,

Has anyone written anything that will skip all the gem related code
that occurs on startup when running a profiler over a program? Is it
even possible?

All that extra stuff in the final output makes it harder to read and
generally bugs me.

Regards,

Dan


#2

Daniel B. wrote:

Hi all,

Has anyone written anything that will skip all the gem related code
that occurs on startup when running a profiler over a program? Is it
even possible?

All that extra stuff in the final output makes it harder to read and
generally bugs me.

An excerpt from the README of ruby-prof:

==================================================
=== ruby-prof API

The second way is to use the ruby-prof API to profile
particular segments of code.

require ‘ruby-prof’

Profile the code

RubyProf.start

[code to profile]

result = RubyProf.stop

Print a flat profile to text

printer = RubyProf::TextPrinter.new(result)
printer.print(STDOUT, 0)

Alternatively, you can use a block to tell ruby-prof what
to profile:

require ‘ruby-prof’

Profile the code

result = RubyProf.profile do

[code to profile]

end

Print a graph profile to text

printer = RubyProf::GraphPrinter.new(result)
printer.print(STDOUT, 0)

If for some reason you want to use profile.rb, it’s easy to hack up to
have the same feature (let me know and I’ll send it).


#3

On May 21, 4:11 pm, Joel VanderWerf removed_email_address@domain.invalid wrote:

An excerpt from the README of ruby-prof:
RubyProf.start
to profile:

Print a graph profile to text

printer = RubyProf::GraphPrinter.new(result)
printer.print(STDOUT, 0)

If for some reason you want to use profile.rb, it’s easy to hack up to
have the same feature (let me know and I’ll send it).


vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407

Oh, excellent Joel, thank you. As for profile.rb, I think it would be
great to send that as a patch to ruby-core. :slight_smile:

Regards,

Dan


#4

On May 21, 5:32 pm, Eric H. removed_email_address@domain.invalid wrote:

generally bugs me.

ancestor) works correctly, and zenprofile (from ZenHacks) works
correctly.

The bug’s been reported at least twice:

http://rubyforge.org/tracker/index.php?
func=detail&aid=5652&group_id=1814&atid=7060

http://rubyforge.org/tracker/index.php?
func=detail&aid=5658&group_id=1814&atid=7060

I haven’t experienced that myself, and it has been less than a year
since the last release. However, I do see a bunch of bugs in the queue
that haven’t been touched, so I dunno.

Shugo, Charlie - you around?

Dan


#5

In message removed_email_address@domain.invalid,
Daniel B. removed_email_address@domain.invalid writes

Hi all,

Has anyone written anything that will skip all the gem related code
that occurs on startup when running a profiler over a program? Is it
even possible?

All that extra stuff in the final output makes it harder to read and
generally bugs me.

Setting that up is trivial with Ruby Performance Validator.

http://www.softwareverify.com/ruby/profiler/index.html

Stephen


#6

Is RubyProf still being maintained? It has this horribly annoying
bug where it breaks when you return after calling RubyProf.start.
The pure-ruby profile.rb works correctly, Shugo’s prof (RubyProf’s
ancestor) works correctly, and zenprofile (from ZenHacks) works
correctly.

Hi Daniel and Eric,

Yup still around (just a few months behind schedule :).

The bug is fixed in ruby-prof 0.5.0, which is now available on
ruby-forge.

Charlie


#7

On May 21, 2007, at 15:11, Joel VanderWerf wrote:

==================================================

[code to profile]

result = RubyProf.stop

Is RubyProf still being maintained? It has this horribly annoying
bug where it breaks when you return after calling RubyProf.start.
The pure-ruby profile.rb works correctly, Shugo’s prof (RubyProf’s
ancestor) works correctly, and zenprofile (from ZenHacks) works
correctly.

The bug’s been reported at least twice:

http://rubyforge.org/tracker/index.php?
func=detail&aid=5652&group_id=1814&atid=7060

http://rubyforge.org/tracker/index.php?
func=detail&aid=5658&group_id=1814&atid=7060