Class: RubyProf::DotPrinter
- Inherits:
-
AbstractPrinter
- Object
- AbstractPrinter
- RubyProf::DotPrinter
- Defined in:
- lib/ruby-prof/printers/dot_printer.rb
Overview
Generates a graphviz graph in dot format. To use the dot printer:
result = RubyProf.profile do
[code to profile]
end
printer = RubyProf::DotPrinter.new(result)
printer.print(STDOUT)
You can use either dot viewer such as GraphViz, or the dot command line tool to reformat the output into a wide variety of outputs:
dot -Tpng graph.dot > graph.png
Constant Summary collapse
- CLASS_COLOR =
'"#666666"'
- EDGE_COLOR =
'"#666666"'
Instance Method Summary collapse
-
#initialize(result) ⇒ DotPrinter
constructor
Creates the DotPrinter using a RubyProf::Proile.
-
#print(output = STDOUT, options = {}) ⇒ Object
Print a graph report to the provided output.
Methods inherited from AbstractPrinter
#method_name, #min_percent, #print_file, #print_footer, #print_header, #setup_options, #sort_method
Constructor Details
#initialize(result) ⇒ DotPrinter
Creates the DotPrinter using a RubyProf::Proile.
26 27 28 29 |
# File 'lib/ruby-prof/printers/dot_printer.rb', line 26 def initialize(result) super(result) @seen_methods = Set.new end |
Instance Method Details
#print(output = STDOUT, options = {}) ⇒ Object
Print a graph report to the provided output.
output - Any IO object, including STDOUT or a file. The default value is STDOUT.
options - Hash of print options. See #setup_options for more information.
When profiling results that cover a large number of method calls it helps to use the :min_percent option, for example:
DotPrinter.new(result).print(STDOUT, :min_percent=>5)
44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/ruby-prof/printers/dot_printer.rb', line 44 def print(output = STDOUT, = {}) @output = output () puts 'digraph "Profile" {' #puts "label=\"#{mode_name} >=#{min_percent}%\\nTotal: #{total_time}\";" puts "labelloc=t;" puts "labeljust=l;" print_threads puts '}' end |