ruby-prof 1.7.2 → 2.0.1

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 (122) hide show
  1. checksums.yaml +4 -4
  2. data/{CHANGES → CHANGELOG.md} +115 -178
  3. data/README.md +5 -5
  4. data/bin/ruby-prof +1 -4
  5. data/bin/ruby-prof-check-trace +45 -45
  6. data/docs/advanced-usage.md +132 -0
  7. data/docs/alternatives.md +98 -0
  8. data/docs/architecture.md +122 -0
  9. data/docs/best-practices.md +27 -0
  10. data/docs/getting-started.md +130 -0
  11. data/docs/history.md +11 -0
  12. data/docs/index.md +45 -0
  13. data/docs/profiling-rails.md +64 -0
  14. data/docs/public/examples/example.rb +33 -0
  15. data/docs/public/examples/generate_reports.rb +92 -0
  16. data/docs/public/examples/reports/call_info.txt +27 -0
  17. data/docs/public/examples/reports/call_stack.html +835 -0
  18. data/docs/public/examples/reports/callgrind.out +150 -0
  19. data/docs/public/examples/reports/flame_graph.html +408 -0
  20. data/docs/public/examples/reports/flat.txt +45 -0
  21. data/docs/public/examples/reports/graph.dot +129 -0
  22. data/docs/public/examples/reports/graph.html +1319 -0
  23. data/docs/public/examples/reports/graph.txt +100 -0
  24. data/docs/public/examples/reports/graphviz_viewer.html +1 -0
  25. data/docs/public/images/call_stack.png +0 -0
  26. data/docs/public/images/class_diagram.png +0 -0
  27. data/docs/public/images/dot_printer.png +0 -0
  28. data/docs/public/images/flame_graph.png +0 -0
  29. data/docs/public/images/flat.png +0 -0
  30. data/docs/public/images/graph.png +0 -0
  31. data/docs/public/images/graph_html.png +0 -0
  32. data/docs/public/images/ruby-prof-logo.svg +1 -0
  33. data/docs/reports.md +150 -0
  34. data/docs/stylesheets/extra.css +80 -0
  35. data/ext/ruby_prof/rp_allocation.c +0 -15
  36. data/ext/ruby_prof/rp_allocation.h +29 -33
  37. data/ext/ruby_prof/rp_call_tree.c +3 -0
  38. data/ext/ruby_prof/rp_call_tree.h +1 -4
  39. data/ext/ruby_prof/rp_call_trees.h +1 -4
  40. data/ext/ruby_prof/rp_measurement.c +0 -5
  41. data/ext/ruby_prof/rp_measurement.h +49 -53
  42. data/ext/ruby_prof/rp_method.c +3 -0
  43. data/ext/ruby_prof/rp_method.h +1 -4
  44. data/ext/ruby_prof/rp_profile.c +1 -1
  45. data/ext/ruby_prof/rp_profile.h +1 -5
  46. data/ext/ruby_prof/rp_stack.h +50 -53
  47. data/ext/ruby_prof/rp_thread.h +1 -4
  48. data/ext/ruby_prof/ruby_prof.h +1 -4
  49. data/ext/ruby_prof/vc/ruby_prof.vcxproj +7 -8
  50. data/lib/ruby-prof/assets/call_stack_printer.html.erb +746 -711
  51. data/lib/ruby-prof/assets/flame_graph_printer.html.erb +412 -0
  52. data/lib/ruby-prof/assets/graph_printer.html.erb +355 -355
  53. data/lib/ruby-prof/call_tree.rb +57 -57
  54. data/lib/ruby-prof/call_tree_visitor.rb +36 -36
  55. data/lib/ruby-prof/measurement.rb +17 -17
  56. data/lib/ruby-prof/printers/abstract_printer.rb +19 -33
  57. data/lib/ruby-prof/printers/call_info_printer.rb +53 -53
  58. data/lib/ruby-prof/printers/call_stack_printer.rb +168 -180
  59. data/lib/ruby-prof/printers/call_tree_printer.rb +132 -145
  60. data/lib/ruby-prof/printers/dot_printer.rb +177 -132
  61. data/lib/ruby-prof/printers/flame_graph_printer.rb +79 -0
  62. data/lib/ruby-prof/printers/flat_printer.rb +52 -52
  63. data/lib/ruby-prof/printers/graph_html_printer.rb +62 -63
  64. data/lib/ruby-prof/printers/graph_printer.rb +112 -113
  65. data/lib/ruby-prof/printers/multi_printer.rb +134 -127
  66. data/lib/ruby-prof/profile.rb +13 -0
  67. data/lib/ruby-prof/rack.rb +114 -105
  68. data/lib/ruby-prof/task.rb +147 -147
  69. data/lib/ruby-prof/thread.rb +20 -20
  70. data/lib/ruby-prof/version.rb +1 -1
  71. data/lib/ruby-prof.rb +50 -52
  72. data/lib/unprof.rb +10 -10
  73. data/ruby-prof.gemspec +66 -66
  74. data/test/abstract_printer_test.rb +25 -27
  75. data/test/alias_test.rb +203 -117
  76. data/test/call_tree_builder.rb +9 -9
  77. data/test/call_tree_visitor_test.rb +27 -27
  78. data/test/call_trees_test.rb +66 -66
  79. data/test/duplicate_names_test.rb +32 -32
  80. data/test/dynamic_method_test.rb +50 -50
  81. data/test/exceptions_test.rb +1 -1
  82. data/test/exclude_threads_test.rb +48 -48
  83. data/test/fiber_test.rb +72 -72
  84. data/test/inverse_call_tree_test.rb +174 -174
  85. data/test/line_number_test.rb +138 -1
  86. data/test/marshal_test.rb +2 -3
  87. data/test/measure_allocations.rb +26 -26
  88. data/test/measure_allocations_test.rb +340 -1
  89. data/test/measure_process_time_test.rb +3098 -3142
  90. data/test/measure_times.rb +56 -56
  91. data/test/measure_wall_time_test.rb +511 -372
  92. data/test/measurement_test.rb +82 -82
  93. data/test/merge_test.rb +48 -48
  94. data/test/multi_printer_test.rb +52 -66
  95. data/test/no_method_class_test.rb +15 -15
  96. data/test/pause_resume_test.rb +171 -171
  97. data/test/prime.rb +54 -54
  98. data/test/prime_script.rb +5 -5
  99. data/test/printer_call_stack_test.rb +4 -3
  100. data/test/printer_call_tree_test.rb +30 -30
  101. data/test/printer_flame_graph_test.rb +82 -0
  102. data/test/printer_flat_test.rb +3 -3
  103. data/test/printer_graph_html_test.rb +12 -9
  104. data/test/printer_graph_test.rb +5 -3
  105. data/test/printers_test.rb +162 -178
  106. data/test/printing_recursive_graph_test.rb +4 -4
  107. data/test/profile_test.rb +2 -2
  108. data/test/rack_test.rb +15 -5
  109. data/test/recursive_test.rb +139 -139
  110. data/test/scheduler.rb +367 -363
  111. data/test/singleton_test.rb +2 -1
  112. data/test/stack_printer_test.rb +61 -61
  113. data/test/start_stop_test.rb +106 -106
  114. data/test/test_helper.rb +4 -0
  115. data/test/thread_test.rb +229 -229
  116. data/test/unique_call_path_test.rb +123 -123
  117. data/test/yarv_test.rb +2 -2
  118. metadata +53 -11
  119. data/ext/ruby_prof/rp_measure_memory.c +0 -46
  120. data/lib/ruby-prof/compatibility.rb +0 -113
  121. data/test/compatibility_test.rb +0 -49
  122. data/test/measure_memory_test.rb +0 -1193
@@ -1,56 +1,56 @@
1
- # Some classes used in measurement tests
2
- require 'singleton'
3
-
4
- module RubyProf
5
- class C1
6
- def C1.sleep_wait
7
- sleep(0.1)
8
- end
9
-
10
- def C1.busy_wait
11
- starting = Process.clock_gettime(Process::CLOCK_MONOTONIC)
12
- while (Process.clock_gettime(Process::CLOCK_MONOTONIC) - starting) < 0.1
13
- end
14
- end
15
-
16
- def sleep_wait
17
- sleep(0.2)
18
- end
19
-
20
- def busy_wait
21
- starting = Process.clock_gettime(Process::CLOCK_MONOTONIC)
22
- while (Process.clock_gettime(Process::CLOCK_MONOTONIC) - starting) < 0.2
23
- end
24
- end
25
- end
26
-
27
- module M1
28
- def sleep_wait
29
- sleep(0.3)
30
- end
31
-
32
- def busy_wait
33
- starting = Process.clock_gettime(Process::CLOCK_MONOTONIC)
34
- while (Process.clock_gettime(Process::CLOCK_MONOTONIC) - starting) < 0.3
35
- end
36
- end
37
- end
38
-
39
- class C2
40
- include M1
41
- extend M1
42
- end
43
-
44
- class C3
45
- include Singleton
46
- def sleep_wait
47
- sleep(0.3)
48
- end
49
-
50
- def busy_wait
51
- starting = Process.clock_gettime(Process::CLOCK_MONOTONIC)
52
- while (Process.clock_gettime(Process::CLOCK_MONOTONIC) - starting) < 0.2
53
- end
54
- end
55
- end
56
- end
1
+ # Some classes used in measurement tests
2
+ require 'singleton'
3
+
4
+ module RubyProf
5
+ class C1
6
+ def C1.sleep_wait
7
+ sleep(0.1)
8
+ end
9
+
10
+ def C1.busy_wait
11
+ starting = Process.clock_gettime(Process::CLOCK_MONOTONIC)
12
+ while (Process.clock_gettime(Process::CLOCK_MONOTONIC) - starting) < 0.1
13
+ end
14
+ end
15
+
16
+ def sleep_wait
17
+ sleep(0.2)
18
+ end
19
+
20
+ def busy_wait
21
+ starting = Process.clock_gettime(Process::CLOCK_MONOTONIC)
22
+ while (Process.clock_gettime(Process::CLOCK_MONOTONIC) - starting) < 0.2
23
+ end
24
+ end
25
+ end
26
+
27
+ module M1
28
+ def sleep_wait
29
+ sleep(0.3)
30
+ end
31
+
32
+ def busy_wait
33
+ starting = Process.clock_gettime(Process::CLOCK_MONOTONIC)
34
+ while (Process.clock_gettime(Process::CLOCK_MONOTONIC) - starting) < 0.3
35
+ end
36
+ end
37
+ end
38
+
39
+ class C2
40
+ include M1
41
+ extend M1
42
+ end
43
+
44
+ class C3
45
+ include Singleton
46
+ def sleep_wait
47
+ sleep(0.3)
48
+ end
49
+
50
+ def busy_wait
51
+ starting = Process.clock_gettime(Process::CLOCK_MONOTONIC)
52
+ while (Process.clock_gettime(Process::CLOCK_MONOTONIC) - starting) < 0.2
53
+ end
54
+ end
55
+ end
56
+ end