ruby-prof 2.0.4 → 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -2
  3. data/lib/ruby-prof/printers/flame_graph_printer.rb +80 -78
  4. data/lib/ruby-prof/version.rb +1 -1
  5. metadata +4 -85
  6. data/Rakefile +0 -98
  7. data/docs/advanced-usage.md +0 -132
  8. data/docs/alternatives.md +0 -98
  9. data/docs/architecture.md +0 -304
  10. data/docs/best-practices.md +0 -27
  11. data/docs/getting-started.md +0 -130
  12. data/docs/history.md +0 -11
  13. data/docs/index.md +0 -45
  14. data/docs/profiling-rails.md +0 -64
  15. data/docs/public/examples/example.rb +0 -33
  16. data/docs/public/examples/generate_reports.rb +0 -92
  17. data/docs/public/examples/reports/call_info.txt +0 -27
  18. data/docs/public/examples/reports/call_stack.html +0 -835
  19. data/docs/public/examples/reports/callgrind.out +0 -150
  20. data/docs/public/examples/reports/flame_graph.html +0 -408
  21. data/docs/public/examples/reports/flat.txt +0 -45
  22. data/docs/public/examples/reports/graph.dot +0 -129
  23. data/docs/public/examples/reports/graph.html +0 -1319
  24. data/docs/public/examples/reports/graph.txt +0 -100
  25. data/docs/public/examples/reports/graphviz_viewer.html +0 -1
  26. data/docs/public/images/call_stack.png +0 -0
  27. data/docs/public/images/class_diagram.png +0 -0
  28. data/docs/public/images/dot_printer.png +0 -0
  29. data/docs/public/images/flame_graph.png +0 -0
  30. data/docs/public/images/flat.png +0 -0
  31. data/docs/public/images/graph.png +0 -0
  32. data/docs/public/images/graph_html.png +0 -0
  33. data/docs/public/images/ruby-prof-logo.svg +0 -1
  34. data/docs/reports.md +0 -151
  35. data/docs/stylesheets/extra.css +0 -80
  36. data/ruby-prof.gemspec +0 -66
  37. data/test/abstract_printer_test.rb +0 -25
  38. data/test/alias_test.rb +0 -203
  39. data/test/call_tree_builder.rb +0 -126
  40. data/test/call_tree_test.rb +0 -94
  41. data/test/call_tree_visitor_test.rb +0 -27
  42. data/test/call_trees_test.rb +0 -66
  43. data/test/duplicate_names_test.rb +0 -32
  44. data/test/dynamic_method_test.rb +0 -50
  45. data/test/enumerable_test.rb +0 -23
  46. data/test/exceptions_test.rb +0 -24
  47. data/test/exclude_methods_test.rb +0 -363
  48. data/test/exclude_threads_test.rb +0 -48
  49. data/test/fiber_test.rb +0 -195
  50. data/test/gc_test.rb +0 -104
  51. data/test/inverse_call_tree_test.rb +0 -174
  52. data/test/line_number_test.rb +0 -563
  53. data/test/marshal_test.rb +0 -144
  54. data/test/measure_allocations.rb +0 -26
  55. data/test/measure_allocations_test.rb +0 -1511
  56. data/test/measure_process_time_test.rb +0 -3286
  57. data/test/measure_times.rb +0 -56
  58. data/test/measure_wall_time_test.rb +0 -774
  59. data/test/measurement_test.rb +0 -82
  60. data/test/merge_test.rb +0 -146
  61. data/test/method_info_test.rb +0 -100
  62. data/test/multi_printer_test.rb +0 -52
  63. data/test/no_method_class_test.rb +0 -15
  64. data/test/pause_resume_test.rb +0 -171
  65. data/test/prime.rb +0 -54
  66. data/test/prime_script.rb +0 -6
  67. data/test/printer_call_stack_test.rb +0 -28
  68. data/test/printer_call_tree_test.rb +0 -30
  69. data/test/printer_flame_graph_test.rb +0 -82
  70. data/test/printer_flat_test.rb +0 -110
  71. data/test/printer_graph_html_test.rb +0 -62
  72. data/test/printer_graph_test.rb +0 -42
  73. data/test/printers_test.rb +0 -162
  74. data/test/printing_recursive_graph_test.rb +0 -81
  75. data/test/profile_test.rb +0 -101
  76. data/test/rack_test.rb +0 -103
  77. data/test/recursive_test.rb +0 -796
  78. data/test/scheduler.rb +0 -367
  79. data/test/singleton_test.rb +0 -39
  80. data/test/stack_printer_test.rb +0 -61
  81. data/test/start_stop_test.rb +0 -106
  82. data/test/test_helper.rb +0 -24
  83. data/test/thread_test.rb +0 -229
  84. data/test/unique_call_path_test.rb +0 -123
  85. data/test/yarv_test.rb +0 -56
@@ -1,92 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # encoding: UTF-8
3
-
4
- # Generates example reports for all ruby-prof printers.
5
- # Usage: ruby docs/public/examples/generate_reports.rb
6
-
7
- # To make testing/debugging easier test within this source tree versus an installed gem
8
- require 'bundler/setup'
9
-
10
- # Add ext directory to load path to make it easier to test locally built extensions
11
- ext_path = File.expand_path(File.join(__dir__, '..', '..', '..', 'ext', 'ruby_prof'))
12
- $LOAD_PATH.unshift(ext_path)
13
-
14
- require 'fileutils'
15
- require 'stringio'
16
- require 'uri'
17
- require 'ruby-prof'
18
- require_relative 'example'
19
-
20
- output_dir = File.join(File.dirname(__FILE__), "reports")
21
- FileUtils.mkdir_p(output_dir)
22
-
23
- def sanitize_local_file_links(path)
24
- content = File.read(path)
25
- content.gsub!(%r{href="file://[^"]*/docs/public/examples/([^"#]+)#\d+"}, 'href="../\1"')
26
- content.gsub!(%r{title=".*?/docs/public/examples/([^":]+):\d+"}, 'title="\1"')
27
- content.gsub!(%r{href="file://[^"]+"}, 'href="#"')
28
- content.gsub!(%r{title="[^"]*(?:<internal:|&lt;internal:)[^"]+"}, 'title="internal"')
29
- File.write(path, content)
30
- end
31
-
32
- result = RubyProf::Profile.profile(measure_mode: RubyProf::WALL_TIME) do
33
- run_example
34
- end
35
-
36
- # Flame Graph
37
- File.open(File.join(output_dir, "flame_graph.html"), "wb") do |f|
38
- RubyProf::FlameGraphPrinter.new(result).print(f)
39
- end
40
-
41
- # Call Stack
42
- File.open(File.join(output_dir, "call_stack.html"), "wb") do |f|
43
- RubyProf::CallStackPrinter.new(result).print(f)
44
- end
45
- sanitize_local_file_links(File.join(output_dir, "call_stack.html"))
46
-
47
- # Graph HTML
48
- File.open(File.join(output_dir, "graph.html"), "wb") do |f|
49
- RubyProf::GraphHtmlPrinter.new(result).print(f)
50
- end
51
- sanitize_local_file_links(File.join(output_dir, "graph.html"))
52
-
53
- # Graph (text)
54
- File.open(File.join(output_dir, "graph.txt"), "wb") do |f|
55
- RubyProf::GraphPrinter.new(result).print(f)
56
- end
57
-
58
- # Flat
59
- File.open(File.join(output_dir, "flat.txt"), "wb") do |f|
60
- RubyProf::FlatPrinter.new(result).print(f)
61
- end
62
-
63
- # Call Info
64
- File.open(File.join(output_dir, "call_info.txt"), "wb") do |f|
65
- RubyProf::CallInfoPrinter.new(result).print(f)
66
- end
67
-
68
- # Dot
69
- dot_io = StringIO.new
70
- RubyProf::DotPrinter.new(result).print(dot_io)
71
- dot_content = dot_io.string
72
- File.open(File.join(output_dir, "graph.dot"), "wb") do |f|
73
- f << dot_content
74
- end
75
-
76
- # Graphviz Online viewer with dot content embedded in URL
77
- viewer_url = "https://dreampuf.github.io/GraphvizOnline/?engine=dot#" + URI.encode_uri_component(dot_content)
78
- File.open(File.join(output_dir, "graphviz_viewer.html"), "wb") do |f|
79
- f << %(<html><head><meta http-equiv="refresh" content="0;url=#{viewer_url}"></head></html>)
80
- end
81
-
82
- # Call Tree (calltree format)
83
- RubyProf::CallTreePrinter.new(result).print(path: output_dir, profile: "profile")
84
- # Rename PID-based filename to a stable name
85
- Dir.glob(File.join(output_dir, "callgrind.out.*")).each do |f|
86
- FileUtils.mv(f, File.join(output_dir, "callgrind.out"))
87
- end
88
-
89
- puts "Reports written to #{output_dir}/"
90
- Dir.glob(File.join(output_dir, "*")).sort.each do |f|
91
- puts " #{File.basename(f)}"
92
- end
@@ -1,27 +0,0 @@
1
- ----------------------------------------------------
2
- Thread ID: 464
3
- Fiber ID: 456
4
- Total Time: 0.007774999990942888
5
- Sort by:
6
-
7
- [global]# (tt:0.01, st:0.00, wt:0.00, ct:0.01, call:1, )
8
- Object#run_example (tt:0.01, st:0.00, wt:0.00, ct:0.01, call:1, )
9
- String#* (tt:0.00, st:0.00, wt:0.00, ct:0.00, call:1, )
10
- Object#normalize (tt:0.00, st:0.00, wt:0.00, ct:0.00, call:1, )
11
- String#downcase (tt:0.00, st:0.00, wt:0.00, ct:0.00, call:1, )
12
- String#gsub (tt:0.00, st:0.00, wt:0.00, ct:0.00, call:1, )
13
- Object#tokenize (tt:0.00, st:0.00, wt:0.00, ct:0.00, call:1, )
14
- String#split (tt:0.00, st:0.00, wt:0.00, ct:0.00, call:1, )
15
- Object#count_words (tt:0.01, st:0.00, wt:0.00, ct:0.01, call:1, )
16
- Hash#initialize (tt:0.00, st:0.00, wt:0.00, ct:0.00, call:1, )
17
- Array#each (tt:0.01, st:0.00, wt:0.00, ct:0.00, call:1, )
18
- Hash#[] (tt:0.00, st:0.00, wt:0.00, ct:0.00, call:5800, )
19
- Integer#+ (tt:0.00, st:0.00, wt:0.00, ct:0.00, call:5800, )
20
- Hash#[]= (tt:0.00, st:0.00, wt:0.00, ct:0.00, call:5800, )
21
- Object#top_words (tt:0.00, st:0.00, wt:0.00, ct:0.00, call:1, )
22
- Enumerable#sort_by (tt:0.00, st:0.00, wt:0.00, ct:0.00, call:1, )
23
- Hash#each (tt:0.00, st:0.00, wt:0.00, ct:0.00, call:1, )
24
- Integer#-@ (tt:0.00, st:0.00, wt:0.00, ct:0.00, call:25, )
25
- Array#take (tt:0.00, st:0.00, wt:0.00, ct:0.00, call:1, )
26
-
27
-