ruby-prof 1.7.1 → 2.0.0

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 (134) hide show
  1. checksums.yaml +4 -4
  2. data/{CHANGES → CHANGELOG.md} +118 -176
  3. data/README.md +5 -5
  4. data/bin/ruby-prof +1 -4
  5. data/docs/advanced-usage.md +132 -0
  6. data/docs/alternatives.md +98 -0
  7. data/docs/architecture.md +122 -0
  8. data/docs/best-practices.md +27 -0
  9. data/docs/getting-started.md +130 -0
  10. data/docs/history.md +11 -0
  11. data/docs/index.md +45 -0
  12. data/docs/profiling-rails.md +64 -0
  13. data/docs/public/examples/example.rb +33 -0
  14. data/docs/public/examples/generate_reports.rb +92 -0
  15. data/docs/public/examples/reports/call_info.txt +27 -0
  16. data/docs/public/examples/reports/call_stack.html +835 -0
  17. data/docs/public/examples/reports/callgrind.out +150 -0
  18. data/docs/public/examples/reports/flame_graph.html +408 -0
  19. data/docs/public/examples/reports/flat.txt +45 -0
  20. data/docs/public/examples/reports/graph.dot +129 -0
  21. data/docs/public/examples/reports/graph.html +1319 -0
  22. data/docs/public/examples/reports/graph.txt +100 -0
  23. data/docs/public/examples/reports/graphviz_viewer.html +1 -0
  24. data/docs/public/images/call_stack.png +0 -0
  25. data/docs/public/images/class_diagram.png +0 -0
  26. data/docs/public/images/dot_printer.png +0 -0
  27. data/docs/public/images/flame_graph.png +0 -0
  28. data/docs/public/images/flat.png +0 -0
  29. data/docs/public/images/graph.png +0 -0
  30. data/docs/public/images/graph_html.png +0 -0
  31. data/docs/public/images/ruby-prof-logo.svg +1 -0
  32. data/docs/reports.md +150 -0
  33. data/docs/stylesheets/extra.css +80 -0
  34. data/ext/ruby_prof/extconf.rb +23 -22
  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.c +296 -296
  40. data/ext/ruby_prof/rp_call_trees.h +25 -28
  41. data/ext/ruby_prof/rp_measure_allocations.c +47 -47
  42. data/ext/ruby_prof/rp_measure_process_time.c +64 -66
  43. data/ext/ruby_prof/rp_measure_wall_time.c +52 -64
  44. data/ext/ruby_prof/rp_measurement.c +0 -5
  45. data/ext/ruby_prof/rp_measurement.h +49 -53
  46. data/ext/ruby_prof/rp_method.c +554 -551
  47. data/ext/ruby_prof/rp_method.h +1 -4
  48. data/ext/ruby_prof/rp_profile.c +1 -1
  49. data/ext/ruby_prof/rp_profile.h +1 -5
  50. data/ext/ruby_prof/rp_stack.c +212 -212
  51. data/ext/ruby_prof/rp_stack.h +50 -53
  52. data/ext/ruby_prof/rp_thread.h +1 -4
  53. data/ext/ruby_prof/ruby_prof.c +50 -50
  54. data/ext/ruby_prof/ruby_prof.h +4 -6
  55. data/ext/ruby_prof/vc/ruby_prof.vcxproj +7 -8
  56. data/lib/ruby-prof/assets/call_stack_printer.html.erb +746 -711
  57. data/lib/ruby-prof/assets/flame_graph_printer.html.erb +412 -0
  58. data/lib/ruby-prof/assets/graph_printer.html.erb +355 -355
  59. data/lib/ruby-prof/call_tree.rb +57 -57
  60. data/lib/ruby-prof/call_tree_visitor.rb +36 -36
  61. data/lib/ruby-prof/exclude_common_methods.rb +204 -204
  62. data/lib/ruby-prof/measurement.rb +17 -17
  63. data/lib/ruby-prof/printers/abstract_printer.rb +142 -138
  64. data/lib/ruby-prof/printers/call_info_printer.rb +53 -53
  65. data/lib/ruby-prof/printers/call_stack_printer.rb +168 -180
  66. data/lib/ruby-prof/printers/call_tree_printer.rb +132 -145
  67. data/lib/ruby-prof/printers/dot_printer.rb +177 -132
  68. data/lib/ruby-prof/printers/flame_graph_printer.rb +79 -0
  69. data/lib/ruby-prof/printers/flat_printer.rb +52 -52
  70. data/lib/ruby-prof/printers/graph_html_printer.rb +62 -63
  71. data/lib/ruby-prof/printers/graph_printer.rb +112 -113
  72. data/lib/ruby-prof/printers/multi_printer.rb +134 -127
  73. data/lib/ruby-prof/profile.rb +13 -0
  74. data/lib/ruby-prof/rack.rb +114 -105
  75. data/lib/ruby-prof/task.rb +147 -147
  76. data/lib/ruby-prof/thread.rb +20 -20
  77. data/lib/ruby-prof/version.rb +3 -3
  78. data/lib/ruby-prof.rb +50 -52
  79. data/lib/unprof.rb +10 -10
  80. data/ruby-prof.gemspec +66 -65
  81. data/test/abstract_printer_test.rb +25 -27
  82. data/test/alias_test.rb +203 -117
  83. data/test/call_tree_builder.rb +126 -126
  84. data/test/call_tree_visitor_test.rb +27 -27
  85. data/test/call_trees_test.rb +66 -66
  86. data/test/duplicate_names_test.rb +32 -32
  87. data/test/dynamic_method_test.rb +50 -62
  88. data/test/enumerable_test.rb +23 -21
  89. data/test/exceptions_test.rb +24 -24
  90. data/test/exclude_methods_test.rb +363 -257
  91. data/test/exclude_threads_test.rb +48 -48
  92. data/test/fiber_test.rb +195 -195
  93. data/test/gc_test.rb +104 -102
  94. data/test/inverse_call_tree_test.rb +174 -174
  95. data/test/line_number_test.rb +563 -289
  96. data/test/marshal_test.rb +144 -145
  97. data/test/measure_allocations.rb +26 -26
  98. data/test/measure_allocations_test.rb +1511 -1081
  99. data/test/measure_process_time_test.rb +3286 -2477
  100. data/test/measure_times.rb +56 -56
  101. data/test/measure_wall_time_test.rb +773 -568
  102. data/test/measurement_test.rb +82 -82
  103. data/test/merge_test.rb +146 -146
  104. data/test/method_info_test.rb +100 -95
  105. data/test/multi_printer_test.rb +52 -66
  106. data/test/no_method_class_test.rb +15 -15
  107. data/test/pause_resume_test.rb +171 -171
  108. data/test/prime.rb +54 -54
  109. data/test/prime_script.rb +5 -5
  110. data/test/printer_call_stack_test.rb +28 -27
  111. data/test/printer_call_tree_test.rb +30 -30
  112. data/test/printer_flame_graph_test.rb +82 -0
  113. data/test/printer_flat_test.rb +99 -99
  114. data/test/printer_graph_html_test.rb +62 -59
  115. data/test/printer_graph_test.rb +42 -40
  116. data/test/printers_test.rb +162 -135
  117. data/test/printing_recursive_graph_test.rb +81 -81
  118. data/test/profile_test.rb +101 -101
  119. data/test/rack_test.rb +103 -93
  120. data/test/recursive_test.rb +796 -622
  121. data/test/scheduler.rb +4 -0
  122. data/test/singleton_test.rb +39 -38
  123. data/test/stack_printer_test.rb +61 -61
  124. data/test/start_stop_test.rb +106 -106
  125. data/test/test_helper.rb +24 -20
  126. data/test/thread_test.rb +229 -231
  127. data/test/unique_call_path_test.rb +123 -136
  128. data/test/yarv_test.rb +56 -60
  129. metadata +68 -16
  130. data/ext/ruby_prof/rp_measure_memory.c +0 -46
  131. data/lib/ruby-prof/compatibility.rb +0 -113
  132. data/test/compatibility_test.rb +0 -49
  133. data/test/crash2.rb +0 -144
  134. data/test/measure_memory_test.rb +0 -1456
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0fbaeec67f3e4771202c58f1902376076dc8e9185e0923e0bad648f6fdaae8a5
4
- data.tar.gz: be5b6c0740418aae93dc7cbe90d13d992b71ffe822cf7332075c1930f3cb6501
3
+ metadata.gz: 5e224180ee0860da7eab97053ea3b121fee69548319a876ff36281d8adf685ca
4
+ data.tar.gz: 0a31dd2aa2d8606e5f707d1d10c0e0989ecaab0207f941f92d3c3fba0dd6d837
5
5
  SHA512:
6
- metadata.gz: 40403f7f034a87120c6a7328057ff9ad2e922f0c1c8aa080720c6f70c8ae84a08bc71bfaecfe040f38f5ebdfb38497326c84136fe2e5ce6f7e4fd775f368739f
7
- data.tar.gz: e5e9def95a8b0240ce330f1d093f549ea9555cfb491d45ba06647c3112dd55229244fb8d42ec871b81cad0b72bb1c9a5e49df1db0ff8008060a197d381acbe8e
6
+ metadata.gz: 25a752b1bb9d94fdfcb0c7fc981cebf9427759fb37f585ba103d63b96b6347e884da9a1dff19a56053953cfd95341ff14c52293361a3a4f8ed347381d4a80d31
7
+ data.tar.gz: 9569f365932edcaf06c58b7f7672e75282efa51605b954ff2a3097a2fb48db155a4ffdc6416e47be9193734c679d7d037baa0925f34d61b09979552827b052ae
@@ -1,30 +1,54 @@
1
- 1.7.1 (2024-10-19)
2
- =====================
1
+ # Changelog
2
+
3
+ ## 2.0.0 (2026-02-13)
4
+ ### Features
5
+ * Ruby 4.0 support.
6
+ * Add flame graph visualizations with icicle mode toggle
7
+ * Lots of documentation updates!
8
+ * Apply consistent styling across all reports
9
+ * Add `Profile#measure_mode_name` method for human-friendly measurement mode names (e.g., "Wall Time" instead of "wall_time")
10
+ * Fix DotPrinter generating self-referencing edges (was using callers instead of callees)
11
+ * Add Graphviz Online viewer link for dot output
12
+
13
+ ### Backwards Incompatible Changes
14
+ * Removed `RubyProf::MEMORY` measurement mode (no longer works on Ruby 4.0+)
15
+ * Rremove compatibility API that was scheduled for removal in 2023
16
+ * Printer options now use keyword arguments instead of an options hash. For example:
17
+ ```ruby
18
+ # Before:
19
+ printer.print(STDOUT, :min_percent => 2, :sort_method => :self_time)
20
+ # After:
21
+ printer.print(STDOUT, min_percent: 2, sort_method: :self_time)
22
+ ```
23
+
24
+ ## 1.7.2 (2025-05-21)
25
+ * Fix compiling on Ubuntu and Arch Linux
26
+ * Update tests for Ruby 3.4
27
+ * Remove tests for Ruby 3.1
28
+ * Update MacOS to use clock_gettime (same as Linux) instead of proprietary mach_absolute_time API
29
+ * Add CMake support
30
+
31
+ ## 1.7.1 (2024-10-19)
3
32
  * Fix crashes when calling merge due to inconsistent method keys (Chris Heald)
4
33
 
5
- 1.7.0 (2024-01-07)
6
- =====================
34
+ ## 1.7.0 (2024-01-07)
7
35
  * Add support for ruby 3.3.* (Charlie Savage)
8
36
  * Remove support for ruby 2.7.* (Charlie Savage)
9
37
  * Fix crash caused by referencing Profile Ruby objects from Method objects that were being moved
10
38
  by GC compaction (Charlie Savage)
11
39
 
12
- 1.6.3 (2023-04-20)
13
- =====================
40
+ ## 1.6.3 (2023-04-20)
14
41
  * Remove debug code unintentionally left in ruby-prof command line program (Charlie Savage)
15
42
 
16
- 1.6.2 (2023-04-17)
17
- =====================
43
+ ## 1.6.2 (2023-04-17)
18
44
  * Fix Profile#merge! implementation (asksurya)
19
45
  * Fix ruby-prof command line program (Charlie Savage)
20
46
  * Added CMakeLists.txt file (Charlie Savage)
21
47
 
22
- 1.6.1 (2023-02-21)
23
- =====================
48
+ ## 1.6.1 (2023-02-21)
24
49
  * Fix loading C extension for MacOS (Charlie Savage)
25
50
 
26
- 1.6.0 (2023-02-20)
27
- =====================
51
+ ## 1.6.0 (2023-02-20)
28
52
  * Add support for Ruby's compacting garbage collector (Charlie Savage)
29
53
  * Add rbs signature files (Charlie Savage)
30
54
  * Update rack adapter used for profiling Rails to include latest ruby-prof features (Charlie Savage)
@@ -32,19 +56,16 @@
32
56
  * Update tests to not use deprecated methods (Charlie Savage)
33
57
  * Improve tests on OSX (Charlie Savage)
34
58
 
35
- 1.5.0 (2023-02-06)
36
- =====================
59
+ ## 1.5.0 (2023-02-06)
37
60
  * Add new Profile#merge! method that merges results for threads/fibers that share the same root method (Charlie Savage)
38
61
  * Expand API to allow creation of +Measurement+, +CallTree+, +MethodInfo+ and +Thread+ instances. This
39
62
  was done to make is possible to write tests for the new Profile#merge! functionality (Charlie Savage)
40
63
 
41
- 1.4.5 (2022-12-27)
42
- =====================
64
+ ## 1.4.5 (2022-12-27)
43
65
  * Look for ruby_prof extension built on install in the lib directory (Charlie Savage)
44
66
  * Added Ruby 3.2.0 build for mingw-urct
45
67
 
46
- 1.4.4 (2022-12-11)
47
- =====================
68
+ ## 1.4.4 (2022-12-11)
48
69
  * Update tests for Ruby 3.1 (Charlie Savage)
49
70
  * When tracing allocations always use the RUBY_INTERNAL_EVENT_NEWOBJ trace event. Previously GC stats could also be used, but that includes the creation of internal T_IMEMO objects makes reviewing results confusing (Charlie Savage)
50
71
  * Remove :profile option that lets a user set the prefix on callgrind output files since KCacheGrind will not automatically show these files in its open dialog. Fixes #313. (Charlie Savage)
@@ -58,8 +79,7 @@
58
79
  * Fix typo. s/perecent/percent/ (Paarth Madan)
59
80
  * Remove support for Ruby 2.5 and 2.6 which are now end of life (Charlie Savage)
60
81
 
61
- 1.4.3 (2021-02-16)
62
- =====================
82
+ ## 1.4.3 (2021-02-16)
63
83
  * Remove trailing spaces (sergioro)
64
84
  * Load "ruby-prof.so" with require_relative (sergioro)
65
85
  * Use same file permissions for all test files (sergioro)
@@ -72,44 +92,37 @@
72
92
  * Remove Ruby 2.4 support since it is no longer maintained (Charlie Savage)
73
93
  * Replace travis status badge with github status badge (Charlie Savage)
74
94
 
75
- 1.4.2 (2020-11-3)
76
- =====================
95
+ ## 1.4.2 (2020-11-3)
77
96
  * Do NOT use Ruby 2.7.0 and 2.7.1 with ruby-prof. A bug in those versions of ruby causes ruby-prof to
78
97
  not work. Version 2.7.2 works correctly.
79
98
  * Fix crash caused be reallocating an internal stack that keeps tracks of frames *after* getting a reference to the
80
99
  top frame in the stack (Charlie Savage).
81
100
  * Fix bug where the flat printer did not correctly report the correct measurement mode.
82
101
 
83
- 1.4.1 (2020-05-14)
84
- =====================
102
+ ## 1.4.1 (2020-05-14)
85
103
  * Fix compiling on older versions of gcc that do not default to c99 (Charlie Savage)
86
104
 
87
- 1.4.0 (2020-05-12)
88
- =====================
105
+ ## 1.4.0 (2020-05-12)
89
106
  * API change - remove merge_fibers support since it resulted in incorrect results or crashes (Charlie Savage)
90
107
  * Fix crash when profiling memory usage (Charlie Savage)
91
108
  * When tracing execution correctly print out newobj tracepoint events (Charlie Savage)
92
109
  * Remove no longer needed code for building extensions (Charlie Savage)
93
110
 
94
- 1.3.2 (2020-04-19)
95
- =====================
111
+ ## 1.3.2 (2020-04-19)
96
112
  * Fix rack profiler so it is thread safe (Charlie Savage)
97
113
  * Fix loading of prebuilt binaries on mingw64 to use Ruby's major and minor version (Charlie Savage)
98
114
 
99
- 1.3.1 (2020-03-11)
100
- =====================
115
+ ## 1.3.1 (2020-03-11)
101
116
  * Add max_percent and filter_by options to flat printer (Sean McGivern)
102
117
  * Include binary in mingw64 build (Charlie Savage)
103
118
 
104
- 1.3.0 (2020-02-22)
105
- =====================
119
+ ## 1.3.0 (2020-02-22)
106
120
  * Update C code to use newer RTypedData API versus older RData API.
107
121
  * Update C code to use rb_cObject versus the older, deprecated, rb_cData.
108
122
  * Update memory management - CallInfo's now keep alive their owning Profile instances. Fixes crashes that
109
123
  could happen in rare instances.
110
124
 
111
- 1.2.0 (2020-01-23)
112
- =====================
125
+ ## 1.2.0 (2020-01-23)
113
126
  * Fix call stack printer broken in version 1.0.0 (Charlie Savage)
114
127
  * Ruby 2.7.0 support (Charlie Savage)
115
128
  * Switch to Windows high precision timer for measuring wall time (Charlie Savage)
@@ -119,15 +132,13 @@ top frame in the stack (Charlie Savage).
119
132
  * API change - CallInfo has been renamed CallTree
120
133
  * Fix crashes on Ruby 2.4.*
121
134
 
122
- 1.1.0 (2019-12-14)
123
- =====================
135
+ ## 1.1.0 (2019-12-14)
124
136
  Changes
125
137
 
126
138
  * Reimplement merge_fibers (Charlie Savage)
127
139
  * Fix crash caused by threads being freed when profiles are freed (Charlie Savage)
128
140
 
129
- 1.0.0 (2019-07-29)
130
- =====================
141
+ ## 1.0.0 (2019-07-29)
131
142
  ruby-prof's development stretches all the way back to 2005. Fourteen years later, it seems time for version 1.0!
132
143
  Version 1.0 is a significant update that greatly improves the internals of ruby-prof and adds a number of improvements.
133
144
 
@@ -151,10 +162,8 @@ At the same time, it was also time to remove old code and deprecated methods. Th
151
162
  * Removed support for RUBY_PROF_EDITOR_URI environment variable that specified the link scheme. This features was more confusing then helpful.
152
163
 
153
164
 
154
- 0.18.0 (2019-05-27)
155
- =====================
156
- Fixes
157
- ------
165
+ ## 0.18.0 (2019-05-27)
166
+ ### Fixes
158
167
  * Fix grouping by thread/fiber (Charlie Savage)
159
168
  * Fix include/exclude thread checking (Charlie Savage)
160
169
  * Fix failing tests (Charlie Savage)
@@ -169,8 +178,7 @@ Fixes
169
178
  * Travis updates (Niocals Leger and Charlie Savage)
170
179
  * Fix NewRelic module detection in exclude_common_methods! (Ben Hughes)
171
180
 
172
- 0.17.0 (2017-12-17)
173
- =====================
181
+ ## 0.17.0 (2017-12-17)
174
182
  * Changed method/class names produced by the callgrind printer to be more kcachegrind
175
183
  friendly (thx to Nelson Gauthier and Ben Hughes, see https://github.com/ruby-prof/ruby-prof/pull/200).
176
184
  * Recursive instances of a method call are now dtected during profiling (thx to Nelson Gauthier and
@@ -184,16 +192,13 @@ Fixes
184
192
  * Fixed that calling profile.stop would stop profiling all active profiling runs.
185
193
  * Fixed that remembering parent call frame pointer before stack reallocation could cause a segfault.
186
194
 
187
- 0.16.2 (2016-08-25)
188
- =====================
195
+ ## 0.16.2 (2016-08-25)
189
196
  * fixed incorrect setting of RUBY_VERSION macro
190
197
 
191
- 0.16.1 (2016-08-24)
192
- =====================
198
+ ## 0.16.1 (2016-08-24)
193
199
  * fixed compile problem with ruby 2.1.10
194
200
 
195
- 0.16.0 (2016-08-24)
196
- =====================
201
+ ## 0.16.0 (2016-08-24)
197
202
  * ruby-prof can now be installed if ruby has been compiled with --disable-gems or
198
203
  RUBYOPT includes --disable-gems (thx to Arthur Nogueira Neves)
199
204
  * Profile.new now accepts and prefers an options hash:
@@ -218,78 +223,61 @@ Fixes
218
223
  * fixed setting threshold bug when displaying stack profiles (thx to Michal Konarski)
219
224
  * code related to printing profiles is now autoloaded for efficiency (thx to Dave Gynn)
220
225
 
221
- 0.15.9 (2015-12-08)
222
- ======================
226
+ ## 0.15.9 (2015-12-08)
223
227
  * rack profiler now supports lambdas for generating profile paths (thx to Jean Rougé)
224
228
  * fixed a bug when printing graph profiles
225
229
 
226
- 0.15.8 (2015-04-24)
227
- ======================
230
+ ## 0.15.8 (2015-04-24)
228
231
  * added missing assets to gem build
229
232
  * fixed randomly failing test
230
233
 
231
- 0.15.7 (2015-04-23)
232
- ======================
234
+ ## 0.15.7 (2015-04-23)
233
235
  * html profiles are now single page (thx to Thomas Leishman)
234
236
 
235
- 0.15.6 (2015-02-22)
236
- ======================
237
+ ## 0.15.6 (2015-02-22)
237
238
  * improved upon computing children time in graph printers
238
239
 
239
- 0.15.5 (2015-02-22)
240
- ======================
240
+ ## 0.15.5 (2015-02-22)
241
241
  * changed output format of flat_printer_with_line_number
242
242
  * support using multi printer from command line (Dov Murik)
243
243
 
244
- 0.15.4 (2015-02-14)
245
- ======================
244
+ ## 0.15.4 (2015-02-14)
246
245
  * using env variable to specify mesaurement mode work again
247
246
  * measuring memory/object allocations works for 2.1 adn 2.2 again
248
247
 
249
- 0.15.3 (2015-01-16)
250
- ======================
248
+ ## 0.15.3 (2015-01-16)
251
249
  * support ruby 2.2.0
252
250
 
253
- 0.15.2 (2014-05-20)
254
- ======================
251
+ ## 0.15.2 (2014-05-20)
255
252
  * rack middleware creates print dir for profile result (Neng)
256
253
 
257
- 0.15.1 (2014-05-20)
258
- ======================
254
+ ## 0.15.1 (2014-05-20)
259
255
  * added license to gemspec
260
256
 
261
- 0.15.0 (2014-05-02)
262
- ======================
257
+ ## 0.15.0 (2014-05-02)
263
258
  * improved cpu time measurement (Charlie Somerville)
264
259
 
265
- 0.14.2 (2014-01-05)
266
- ======================
260
+ ## 0.14.2 (2014-01-05)
267
261
  * hopefully fixed compile problem under Windows
268
262
 
269
- 0.14.0 (2014-01-02)
270
- ======================
263
+ ## 0.14.0 (2014-01-02)
271
264
  * support ruby 2.1.0
272
265
  * dropped support for 1.8.x, 1.9.1 and 1.9.2
273
266
 
274
- 0.13.1 (2013-12-14)
275
- ======================
267
+ ## 0.13.1 (2013-12-14)
276
268
  * speed up for displaying large call stacks (Benjamin Quoming)
277
269
 
278
- 0.13 (2013-03-10)
279
- ======================
270
+ ## 0.13 (2013-03-10)
280
271
  * support fibers on 1.9.x+
281
272
  * improved display for very wide call stacks (Sammy Larbi)
282
273
 
283
- 0.12.2 (2013-02-13)
284
- ======================
274
+ ## 0.12.2 (2013-02-13)
285
275
  * Fixed segfault when using falcon or railsexpress patches for 1.9.3
286
276
 
287
- 0.12.1 (2013-01-07)
288
- ======================
277
+ ## 0.12.1 (2013-01-07)
289
278
  * Add back in pause/resume support since Rails uses it
290
279
 
291
- 0.12.0 (2013-01-06)
292
- ======================
280
+ ## 0.12.0 (2013-01-06)
293
281
  * Ruby 2.0.0 support (Charlie Savage)
294
282
  * Fix issue where profiling results could exceed 100% if profile code had multiple top level methods (Charlie Savage)
295
283
  * Replaced RubyProf::Thread#top_method with RubyProf::Thread#top_methods (Charlie Savage)
@@ -300,8 +288,7 @@ Fixes
300
288
  * Fix list formatting in readme (Thilo Rusche)
301
289
  * Remove pause/resume support since its buggy and complicates the code
302
290
 
303
- 0.11.3 (2012-12-27)
304
- ======================
291
+ ## 0.11.3 (2012-12-27)
305
292
  * Prefix c functions with prof_ to avoid name conflicts (Kenta Murata)
306
293
  * Update ruby-prof script to avoid seg faults (Gary Weaver)
307
294
  * Rakefile updates (Roger Pack)
@@ -311,20 +298,17 @@ Fixes
311
298
  * Remove duplicate code (Chas Lemley)
312
299
 
313
300
 
314
- 0.11.2 (2012-05-06)
315
- ======================
301
+ ## 0.11.2 (2012-05-06)
316
302
  * Fix compile issue with BOOL. Should be _Bool for C99.
317
303
 
318
304
 
319
- 0.11.1 (2012-05-06)
320
- ======================
305
+ ## 0.11.1 (2012-05-06)
321
306
  * Added option --exclude-common-callbacks, plus exclude #map and #inject in common cycles (Vasily Fedoseyev)
322
307
  * Add option --exclude-common-cycles to exclude common iterators (Vasily Fedoseyev)
323
308
  * Allow method elimination from command line via '-x' and '-X' keys (Vasily Fedoseyev)
324
309
 
325
310
 
326
- 0.11.0 (2012-05-05)
327
- ======================
311
+ ## 0.11.0 (2012-05-05)
328
312
  * Fix pause/resume so it actually works and add tests (David Barri)
329
313
  * Resume now returns the result of the block when given (David Barri)
330
314
  * Make recursive method explanation more clear (Charlie Savage)
@@ -334,13 +318,11 @@ Fixes
334
318
  * Fix tests on 1.8.7 (rogerdpack)
335
319
 
336
320
 
337
- 0.11.0.rc3 (2012-03-26)
338
- ======================
321
+ ## 0.11.0.rc3 (2012-03-26)
339
322
  * Include missing files in gemspec (Charlie Savage).
340
323
 
341
324
 
342
- 0.11.0.rc2 (2012-03-25)
343
- ======================
325
+ ## 0.11.0.rc2 (2012-03-25)
344
326
  * Lots of improvements to Rack handler - this can be used to profile requests
345
327
  in Rails and other rack-based ruby web frameworks (Charlie Savage).
346
328
  * Reimplemented handling of recursive calls using CallInfoVisitor (Charlie Savage).
@@ -354,8 +336,7 @@ Fixes
354
336
  * Significant updates to documentation (Charlie Savage).
355
337
  * More c code cleanup (Charlie Savage).
356
338
 
357
- 0.11.0.rc1 (2012-03-24)
358
- ======================
339
+ ## 0.11.0.rc1 (2012-03-24)
359
340
  * Big internal refactoring of C code to make RubyProf easier to understand and extend (Charlie Savage).
360
341
  * Profile results are now returned as instances of a new class RubyProf::Profile. The old api
361
342
  is supported via a compatability layer that at some point will be deprecated. (Charlie Savage).
@@ -374,54 +355,42 @@ Fixes
374
355
  * Remove custom mingw build scripts, use rake compiler instead (Charlie Savage).
375
356
  * Fixes for compiling with VC 2010 (Charlie Savage).
376
357
 
377
- 0.10.8 (2011-07-06)
378
- ======================
358
+ ## 0.10.8 (2011-07-06)
379
359
  * 1.9.3 super class (Roger Pack)
380
360
 
381
- 0.10.7 (2011-05-09)
382
- ======================
361
+ ## 0.10.7 (2011-05-09)
383
362
  * Fix a bug with REE's GC stats. Issue #53 [thanks graaff]
384
363
 
385
- 0.10.6 (2011-04-29)
386
- ======================
364
+ ## 0.10.6 (2011-04-29)
387
365
  * Slightly more normalized url for linux/windows links to files.
388
366
 
389
- 0.10.5 (2011-04-20)
390
- =======================
367
+ ## 0.10.5 (2011-04-20)
391
368
  * 1.8.6 compat for -v command (bug fix)
392
369
 
393
- 0.10.4 (2011-04-20)
394
- =======================
370
+ ## 0.10.4 (2011-04-20)
395
371
  * Faster load time for ruby-prof itself.
396
372
 
397
- 0.10.3
398
- =======================
373
+ ## 0.10.3
399
374
  * Can cleanly load before rubygems now.
400
375
 
401
- 0.10.2
402
- =======================
376
+ ## 0.10.2
403
377
  * Fix for 1.9.2, os x for latest commits (thanks skaes!)
404
378
 
405
- 0.10.1
406
- =======================
379
+ ## 0.10.1
407
380
  * Fix bug in linux wall time, also load with only relative paths so that you can use it to benchmark rubygems startup overhead,
408
381
  itself.
409
382
 
410
- 0.10.0
411
- =======================
383
+ ## 0.10.0
412
384
  * Some rdoc changes, for linux wall time attempt to use higher granularity (thanks to all the contributors for this round!)
413
385
 
414
- 0.9.2
415
- =======================
386
+ ## 0.9.2
416
387
  * Make graphviz work on 1.8.6
417
388
  * Roll back some 1.9.2 optimizations until I can figure out what caused them.
418
389
 
419
- 0.9.1
420
- =======================
390
+ ## 0.9.1
421
391
  * Add a graphviz output
422
392
 
423
- 0.9.0
424
- =======================
393
+ ## 0.9.0
425
394
  * measurements for recursive methods are now correct
426
395
  * gave up on splitting up recursive methods according to call depth
427
396
  * made it possible to eliminate methods from profiling results
@@ -430,39 +399,32 @@ Fixes
430
399
  * HTML profiles contain Textmate links so you can jump to the source code easily
431
400
  * producing an event log is now a runtime option
432
401
 
433
- 0.7.10 (2009-01-22)
434
- =======================
402
+ ## 0.7.10 (2009-01-22)
435
403
  * fix SEGFAULT in 1.9
436
404
  * add new printer flat_printer_with_line_numbers
437
405
 
438
- 0.7.7 (2009-01-13)
439
- ======================
406
+ ## 0.7.7 (2009-01-13)
440
407
  * "fix" multi threading support for 1.9 http://redmine.ruby-lang.org/issues/show/2012
441
408
  * speedups
442
409
 
443
- 0.7.6 (2009-12-31)
444
- ======================
410
+ ## 0.7.6 (2009-12-31)
445
411
  * fix some tests for 1.9 (no real code changes)
446
412
 
447
- 0.7.5 (2009-12)
448
- ========================
413
+ ## 0.7.5 (2009-12)
449
414
  * fix a GC collection bug (nobu's patch).
450
415
  * correctly report recursive call depths (Kevin Scaldeferri).
451
416
  * sort methods on output (Kevin Scaldeferri).
452
417
 
453
- 0.7.3 (2008-12-09)
454
- ========================
418
+ ## 0.7.3 (2008-12-09)
455
419
  * Fixed compile error with new x86_64 code using GCC.
456
420
 
457
- 0.7.2 (2008-12-08)
458
- ========================
421
+ ## 0.7.2 (2008-12-08)
459
422
  * Fixed major bug in printing child methods in graph reports.
460
423
 
461
424
  * Fixes for supporting x86_64 machines (Diego Pettenò)
462
425
 
463
426
 
464
- 0.7.1 (2008-11-28)
465
- ========================
427
+ ## 0.7.1 (2008-11-28)
466
428
  * Added new AggregateCallTree class for printers to
467
429
  make results easier to read. Take this call sequence
468
430
  for example:
@@ -482,11 +444,9 @@ Fixes
482
444
  * Fixes for supporting x86_64 machines (Matt Sanford)
483
445
 
484
446
 
485
- 0.7.0 (2008-11-04)
486
- ========================
447
+ ## 0.7.0 (2008-11-04)
487
448
 
488
- Features
489
- --------
449
+ ### Features
490
450
  * Added two new methods - RubyProf.resume and RubyProf.pause.
491
451
  RubyProf.resume takes an optional block, which ensures that
492
452
  RubyProf.pause is called. For example:
@@ -527,29 +487,25 @@ Features
527
487
  See http://lloydforge.org/projects/ruby. (Jeremy Kemper).
528
488
 
529
489
 
530
- Fixes
531
- -------
490
+ ### Fixes
532
491
  * RubyProf.profile no longer crashes if an exception is
533
492
  thrown during a profiling run.
534
493
 
535
494
  * Measure memory in fractional kilobytes rather than rounding down (Jeremy Kemper)
536
495
 
537
496
 
538
- 0.6.0 (2008-02-03)
539
- ========================
497
+ ## 0.6.0 (2008-02-03)
540
498
 
541
499
  ruby-prof 0.6.0 adds support for Ruby 1.9 and memory profiling.
542
500
 
543
- Features
544
- --------
501
+ ### Features
545
502
  * Added support for ruby 1.9 (Shugo Maeda)
546
503
  * Added support for outputting printer results to a String, Array or IO
547
504
  object (Michael Granger)
548
505
  * Add new memory profiling mode. Note this mode depends on a
549
506
  patched Ruby interpreter (Alexander Dymo)
550
507
 
551
- Fixes
552
- -------
508
+ ### Fixes
553
509
  * Improvements to GraphHtmlPrinter including updated documentation,
554
510
  fixes for min_time support, ability to specify templates using
555
511
  strings or filenames, and table layout fixes (Makoto Kuwata)
@@ -566,28 +522,23 @@ Fixes
566
522
  set their values to nil if the functionality is not available.
567
523
 
568
524
 
569
- 0.5.2 (2007-07-19)
570
- ========================
525
+ ## 0.5.2 (2007-07-19)
571
526
 
572
527
  ruby-prof 0.5.2 is a bug fix release.
573
528
 
574
- Fixes
575
- -------
529
+ ### Fixes
576
530
  * Include missing rails plugin
577
531
 
578
532
 
579
- 0.5.1 (2007-07-18)
580
- ========================
533
+ ## 0.5.1 (2007-07-18)
581
534
 
582
535
  ruby-prof 0.5.1 is a bug fix and performance release.
583
536
 
584
- Performance
585
- --------
537
+ ### Performance
586
538
  * Significantly reduced the number of thread lookups by
587
539
  caching the last executed thread.
588
540
 
589
- Fixes
590
- -------
541
+ ### Fixes
591
542
  * Properly escape method names in HTML reports
592
543
  * Fix use of -m and --min-percent command line switches
593
544
  * Default source file information to ruby_runtime#0 for c calls
@@ -597,11 +548,9 @@ Fixes
597
548
  * Added additional tests
598
549
 
599
550
 
600
- 0.5.0 (2007-07-09)
601
- ========================
551
+ ## 0.5.0 (2007-07-09)
602
552
 
603
- Features
604
- --------
553
+ ### Features
605
554
  * Added support for timing multi-threaded applications
606
555
  * Added support for 64 bit systems (patch from Diego 'Flameeyes' Petten)
607
556
  * Added suport for outputting data in the format used by
@@ -612,8 +561,7 @@ Features
612
561
  * Added better support for recursive methods
613
562
  * Added better support for profiling Rails applications
614
563
 
615
- Fixes
616
- -------
564
+ ### Fixes
617
565
  * Fixes bug when the type of an attached object (singleton) is inherited
618
566
  from T_OBJECT as opposed to being a T_OBJECT (identified by Francis Cianfrocca)
619
567
  * ruby-prof now works in IRB.
@@ -621,24 +569,19 @@ Fixes
621
569
  * Fixed rdoc compile error.
622
570
  * Fix tabs in erb template for graph html report on windows.
623
571
 
624
- 0.4.1 (2006-06-26)
625
- ========================
572
+ ## 0.4.1 (2006-06-26)
626
573
 
627
- Features
628
- --------
574
+ ### Features
629
575
  * Added a RubyProf.running? method to indicate whether a profile is in progress.
630
576
  * Added tgz and zip archives to release
631
577
 
632
- Fixes
633
- -------
578
+ ### Fixes
634
579
  * Duplicate method names are now allowed
635
580
  * The documentation has been updated to show the correct API usage is RubyProf.stop not RubyProf.end
636
581
 
637
582
 
638
- 0.4.0 (2006-06-16)
639
- ========================
640
- Features
641
- --------
583
+ ## 0.4.0 (2006-06-16)
584
+ ### Features
642
585
  * added support for call graphs
643
586
  * added support for printers. Currently there is a FlatPrinter,
644
587
  GraphPrinter and GraphHtmlPrinter.
@@ -646,8 +589,7 @@ Features
646
589
  * added Windows support
647
590
  * now packaged as a RubyGem
648
591
 
649
- Fixes
650
- -------
592
+ ### Fixes
651
593
  * Fixes bug where RubyProf would crash depending on the
652
594
  way it was invoked - for example, it did not run when
653
595
  used with Arachno Ruby's customized version of Ruby.
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
- # ruby-prof
2
-
3
- ![ruby-prof](https://github.com/ruby-prof/ruby-prof/workflows/ruby-prof/badge.svg)
4
-
5
- For an overview of ruby-prof please see https://ruby-prof.github.io
1
+ # ruby-prof
2
+
3
+ ![ruby-prof](https://github.com/ruby-prof/ruby-prof/workflows/ruby-prof/badge.svg)
4
+
5
+ For an overview of ruby-prof please see https://ruby-prof.github.io
data/bin/ruby-prof CHANGED
@@ -165,8 +165,7 @@ module RubyProf
165
165
  'Select what ruby-prof should measure:',
166
166
  ' wall - Wall time (default).',
167
167
  ' process - Process time.',
168
- ' allocations - Object allocations (requires patched Ruby interpreter).',
169
- ' memory - Allocated memory in KB (requires patched Ruby interpreter).') do |measure_mode|
168
+ ' allocations - Object allocations (requires patched Ruby interpreter).') do |measure_mode|
170
169
 
171
170
  case measure_mode
172
171
  when :wall
@@ -175,8 +174,6 @@ module RubyProf
175
174
  options.measure_mode = RubyProf::PROCESS_TIME
176
175
  when :allocations
177
176
  options.measure_mode = RubyProf::ALLOCATIONS
178
- when :memory
179
- options.measure_mode = RubyProf::MEMORY
180
177
  end
181
178
  end
182
179