ruby-prof 0.17.0 → 0.18.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 (185) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGES +500 -482
  3. data/LICENSE +24 -24
  4. data/README.rdoc +487 -485
  5. data/Rakefile +113 -113
  6. data/bin/ruby-prof +345 -345
  7. data/bin/ruby-prof-check-trace +45 -45
  8. data/examples/flat.txt +50 -50
  9. data/examples/graph.dot +84 -84
  10. data/examples/graph.html +823 -823
  11. data/examples/graph.txt +139 -139
  12. data/examples/multi.flat.txt +23 -23
  13. data/examples/multi.graph.html +760 -760
  14. data/examples/multi.grind.dat +114 -114
  15. data/examples/multi.stack.html +547 -547
  16. data/examples/stack.html +547 -547
  17. data/ext/ruby_prof/extconf.rb +68 -68
  18. data/ext/ruby_prof/rp_call_info.c +425 -425
  19. data/ext/ruby_prof/rp_call_info.h +53 -53
  20. data/ext/ruby_prof/rp_measure.c +40 -40
  21. data/ext/ruby_prof/rp_measure.h +45 -45
  22. data/ext/ruby_prof/rp_measure_allocations.c +76 -76
  23. data/ext/ruby_prof/rp_measure_cpu_time.c +136 -136
  24. data/ext/ruby_prof/rp_measure_gc_runs.c +73 -73
  25. data/ext/ruby_prof/rp_measure_gc_time.c +60 -60
  26. data/ext/ruby_prof/rp_measure_memory.c +77 -77
  27. data/ext/ruby_prof/rp_measure_process_time.c +71 -71
  28. data/ext/ruby_prof/rp_measure_wall_time.c +45 -45
  29. data/ext/ruby_prof/rp_method.c +630 -636
  30. data/ext/ruby_prof/rp_method.h +75 -75
  31. data/ext/ruby_prof/rp_stack.c +173 -173
  32. data/ext/ruby_prof/rp_stack.h +63 -63
  33. data/ext/ruby_prof/rp_thread.c +277 -276
  34. data/ext/ruby_prof/rp_thread.h +27 -27
  35. data/ext/ruby_prof/ruby_prof.c +794 -774
  36. data/ext/ruby_prof/ruby_prof.h +60 -59
  37. data/ext/ruby_prof/vc/ruby_prof.sln +20 -21
  38. data/ext/ruby_prof/vc/{ruby_prof_20.vcxproj → ruby_prof.vcxproj} +31 -0
  39. data/lib/ruby-prof.rb +68 -68
  40. data/lib/ruby-prof/aggregate_call_info.rb +76 -76
  41. data/lib/ruby-prof/assets/call_stack_printer.css.html +116 -116
  42. data/lib/ruby-prof/assets/call_stack_printer.js.html +384 -384
  43. data/lib/ruby-prof/call_info.rb +115 -115
  44. data/lib/ruby-prof/call_info_visitor.rb +40 -40
  45. data/lib/ruby-prof/compatibility.rb +179 -178
  46. data/lib/ruby-prof/method_info.rb +121 -121
  47. data/lib/ruby-prof/printers/abstract_printer.rb +104 -103
  48. data/lib/ruby-prof/printers/call_info_printer.rb +41 -41
  49. data/lib/ruby-prof/printers/call_stack_printer.rb +265 -265
  50. data/lib/ruby-prof/printers/call_tree_printer.rb +143 -143
  51. data/lib/ruby-prof/printers/dot_printer.rb +132 -132
  52. data/lib/ruby-prof/printers/flat_printer.rb +70 -70
  53. data/lib/ruby-prof/printers/flat_printer_with_line_numbers.rb +83 -83
  54. data/lib/ruby-prof/printers/graph_html_printer.rb +249 -249
  55. data/lib/ruby-prof/printers/graph_printer.rb +116 -116
  56. data/lib/ruby-prof/printers/multi_printer.rb +84 -84
  57. data/lib/ruby-prof/profile.rb +26 -26
  58. data/lib/ruby-prof/profile/exclude_common_methods.rb +207 -201
  59. data/lib/ruby-prof/profile/legacy_method_elimination.rb +50 -49
  60. data/lib/ruby-prof/rack.rb +174 -174
  61. data/lib/ruby-prof/task.rb +147 -147
  62. data/lib/ruby-prof/thread.rb +35 -35
  63. data/lib/ruby-prof/version.rb +3 -3
  64. data/lib/unprof.rb +10 -10
  65. data/ruby-prof.gemspec +58 -58
  66. data/test/abstract_printer_test.rb +53 -0
  67. data/test/aggregate_test.rb +136 -136
  68. data/test/basic_test.rb +128 -128
  69. data/test/block_test.rb +74 -74
  70. data/test/call_info_test.rb +78 -78
  71. data/test/call_info_visitor_test.rb +31 -31
  72. data/test/duplicate_names_test.rb +32 -32
  73. data/test/dynamic_method_test.rb +55 -55
  74. data/test/enumerable_test.rb +21 -21
  75. data/test/exceptions_test.rb +24 -16
  76. data/test/exclude_methods_test.rb +146 -146
  77. data/test/exclude_threads_test.rb +53 -53
  78. data/test/fiber_test.rb +79 -79
  79. data/test/issue137_test.rb +63 -63
  80. data/test/line_number_test.rb +80 -80
  81. data/test/measure_allocations_test.rb +26 -26
  82. data/test/measure_cpu_time_test.rb +212 -213
  83. data/test/measure_gc_runs_test.rb +32 -32
  84. data/test/measure_gc_time_test.rb +36 -36
  85. data/test/measure_memory_test.rb +33 -33
  86. data/test/measure_process_time_test.rb +61 -63
  87. data/test/measure_wall_time_test.rb +255 -255
  88. data/test/method_elimination_test.rb +84 -84
  89. data/test/module_test.rb +45 -45
  90. data/test/multi_printer_test.rb +104 -104
  91. data/test/no_method_class_test.rb +15 -15
  92. data/test/pause_resume_test.rb +166 -166
  93. data/test/prime.rb +54 -54
  94. data/test/printers_test.rb +275 -275
  95. data/test/printing_recursive_graph_test.rb +127 -127
  96. data/test/rack_test.rb +157 -157
  97. data/test/recursive_test.rb +215 -215
  98. data/test/singleton_test.rb +38 -38
  99. data/test/stack_printer_test.rb +77 -78
  100. data/test/stack_test.rb +138 -138
  101. data/test/start_stop_test.rb +112 -112
  102. data/test/test_helper.rb +267 -275
  103. data/test/thread_test.rb +187 -187
  104. data/test/unique_call_path_test.rb +202 -202
  105. data/test/yarv_test.rb +55 -55
  106. metadata +17 -96
  107. data/doc/LICENSE.html +0 -115
  108. data/doc/README_rdoc.html +0 -637
  109. data/doc/Rack.html +0 -96
  110. data/doc/Rack/RubyProf.html +0 -233
  111. data/doc/Rack/RubyProf/RackProfiler.html +0 -343
  112. data/doc/RubyProf.html +0 -974
  113. data/doc/RubyProf/AbstractPrinter.html +0 -625
  114. data/doc/RubyProf/AggregateCallInfo.html +0 -552
  115. data/doc/RubyProf/CallInfo.html +0 -579
  116. data/doc/RubyProf/CallInfoPrinter.html +0 -121
  117. data/doc/RubyProf/CallInfoVisitor.html +0 -199
  118. data/doc/RubyProf/CallStackPrinter.html +0 -1127
  119. data/doc/RubyProf/CallTreePrinter.html +0 -725
  120. data/doc/RubyProf/Cmd.html +0 -637
  121. data/doc/RubyProf/DeprecationWarnings.html +0 -148
  122. data/doc/RubyProf/DotPrinter.html +0 -258
  123. data/doc/RubyProf/FlatPrinter.html +0 -164
  124. data/doc/RubyProf/FlatPrinterWithLineNumbers.html +0 -210
  125. data/doc/RubyProf/GraphHtmlPrinter.html +0 -558
  126. data/doc/RubyProf/GraphPrinter.html +0 -140
  127. data/doc/RubyProf/MethodInfo.html +0 -676
  128. data/doc/RubyProf/MultiPrinter.html +0 -574
  129. data/doc/RubyProf/Profile.html +0 -908
  130. data/doc/RubyProf/Profile/ExcludeCommonMethods.html +0 -411
  131. data/doc/RubyProf/Profile/LegacyMethodElimination.html +0 -158
  132. data/doc/RubyProf/ProfileTask.html +0 -491
  133. data/doc/RubyProf/Thread.html +0 -275
  134. data/doc/created.rid +0 -33
  135. data/doc/css/fonts.css +0 -167
  136. data/doc/css/rdoc.css +0 -590
  137. data/doc/examples/flat_txt.html +0 -139
  138. data/doc/examples/graph_html.html +0 -910
  139. data/doc/examples/graph_txt.html +0 -248
  140. data/doc/fonts/Lato-Light.ttf +0 -0
  141. data/doc/fonts/Lato-LightItalic.ttf +0 -0
  142. data/doc/fonts/Lato-Regular.ttf +0 -0
  143. data/doc/fonts/Lato-RegularItalic.ttf +0 -0
  144. data/doc/fonts/SourceCodePro-Bold.ttf +0 -0
  145. data/doc/fonts/SourceCodePro-Regular.ttf +0 -0
  146. data/doc/images/add.png +0 -0
  147. data/doc/images/arrow_up.png +0 -0
  148. data/doc/images/brick.png +0 -0
  149. data/doc/images/brick_link.png +0 -0
  150. data/doc/images/bug.png +0 -0
  151. data/doc/images/bullet_black.png +0 -0
  152. data/doc/images/bullet_toggle_minus.png +0 -0
  153. data/doc/images/bullet_toggle_plus.png +0 -0
  154. data/doc/images/date.png +0 -0
  155. data/doc/images/delete.png +0 -0
  156. data/doc/images/find.png +0 -0
  157. data/doc/images/loadingAnimation.gif +0 -0
  158. data/doc/images/macFFBgHack.png +0 -0
  159. data/doc/images/package.png +0 -0
  160. data/doc/images/page_green.png +0 -0
  161. data/doc/images/page_white_text.png +0 -0
  162. data/doc/images/page_white_width.png +0 -0
  163. data/doc/images/plugin.png +0 -0
  164. data/doc/images/ruby.png +0 -0
  165. data/doc/images/tag_blue.png +0 -0
  166. data/doc/images/tag_green.png +0 -0
  167. data/doc/images/transparent.png +0 -0
  168. data/doc/images/wrench.png +0 -0
  169. data/doc/images/wrench_orange.png +0 -0
  170. data/doc/images/zoom.png +0 -0
  171. data/doc/index.html +0 -666
  172. data/doc/js/darkfish.js +0 -161
  173. data/doc/js/jquery.js +0 -4
  174. data/doc/js/navigation.js +0 -142
  175. data/doc/js/navigation.js.gz +0 -0
  176. data/doc/js/search.js +0 -109
  177. data/doc/js/search_index.js +0 -1
  178. data/doc/js/search_index.js.gz +0 -0
  179. data/doc/js/searcher.js +0 -229
  180. data/doc/js/searcher.js.gz +0 -0
  181. data/doc/table_of_contents.html +0 -1052
  182. data/examples/cachegrind.out.1 +0 -114
  183. data/examples/cachegrind.out.1.32313213 +0 -114
  184. data/ext/ruby_prof/vc/ruby_prof_18.vcxproj +0 -108
  185. data/ext/ruby_prof/vc/ruby_prof_19.vcxproj +0 -110
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 94e9eba05612bbd737798359bcf898e176123b9d
4
- data.tar.gz: 6847861b3f77dc3fb2debd860d5c7ea98c9ffd5d
2
+ SHA256:
3
+ metadata.gz: 0a49e18e54d42400e058974d267397f509db589986305b5a77665e35bb1f86f1
4
+ data.tar.gz: 864eff5e8c7e7a12aa51847d1ed0708f83569f5762694243432595db1801bd91
5
5
  SHA512:
6
- metadata.gz: e36f147192ce9457a88baeaec6c28702d33fd1316307697d720b1f1531eefc85362a27b715b806aa41e8dce76aeeb994583a5078f14c554c234905eea8cfd338
7
- data.tar.gz: fea5bf49e7b6d00ac22d54d5f7852dab1726e88595a3e188e8352934f82e66e97f9780e811bfc073e52c3fba256693a0d9cb34892356b9cf048216001ba1b6c3
6
+ metadata.gz: 44bc51fe89e03519159dd63e9820cdd6f5b2c794f4a82989b1af06a42b84f788c0660fc65daa50a48143fc0e87c112cf62f88df2df684c5e6d3ef86c4b98fd26
7
+ data.tar.gz: 71ddfeedced6ea1964d86aea364d6a23fc356e924f0849a872e2ab5c560e8f1bc0a326a280031cdad4cec4e68ffef986a218e1ff952b2f92d1e92204cd395af7
data/CHANGES CHANGED
@@ -1,482 +1,500 @@
1
- 0.17.0 (2017-12-17)
2
- =====================
3
- * Changed method/class names produced by the callgrind printer to be more kcachegrind
4
- friendly (thx to Nelson Gauthier and Ben Hughes, see https://github.com/ruby-prof/ruby-prof/pull/200).
5
- * Recursive instances of a method call are now dtected during profiling (thx to Nelson Gauthier and
6
- Ben Hughes, see https://github.com/ruby-prof/ruby-prof/pull/201).
7
- * Methods can now be ignored during a profiling run instead of eliminating them
8
- after a profile run, which has been deprecated (thx to Nelson Gauthier and Ben Hughes,
9
- see https://github.com/ruby-prof/ruby-prof/pull/202).
10
- * Use RUBY_PROF_EDITOR_URI=emacs to open source code links in the one true editor.
11
- (thx Alexander Egorov, see https://github.com/ruby-prof/ruby-prof/pull/183 and
12
- https://github.com/typester/emacs-handler).
13
- * Fixed that calling profile.stop would stop profiling all active profiling runs.
14
- * Fixed that remembering parent call frame pointer before stack reallocation could cause a segfault.
15
-
16
- 0.16.2 (2016-08-25)
17
- =====================
18
- * fixed incorrect setting of RUBY_VERSION macro
19
-
20
- 0.16.1 (2016-08-24)
21
- =====================
22
- * fixed compile problem with ruby 2.1.10
23
-
24
- 0.16.0 (2016-08-24)
25
- =====================
26
- * ruby-prof can now be installed if ruby has been compiled with --disable-gems or
27
- RUBYOPT includes --disable-gems (thx to Arthur Nogueira Neves)
28
- * Profile.new now accepts and prefers an options hash:
29
- - measure_mode: one of the RubyProf measure mode constants
30
- - exclude_threads: an array of threads to ignore when collecting profile data
31
- - include_threads: an array of threads to include when collecting profile data
32
- - merge_fibers: whether or not to merge the profile data for all fibers under their creating thread
33
- * overhauled printer for cachegrind profiles:
34
- - profile data for each thread dumped to a separate file, as kcachegrind does not
35
- fully implement the cachegrind specification
36
- - this required a change in interface: it's now necessary to specify a directory
37
- where to dump the cachegrind files
38
- - naming convention for cachegrind files changed so that kcachegrind shows them
39
- all in the open dialog
40
- * improved Rack middleware:
41
- - it's now possible to use the MultiPrinter
42
- - new option ignore_existing_threads: will ignore all prexisiting threads
43
- when profiling a request, except the thread perfoming the request.
44
- - new option request_thread_only: will ignore all preexisting threads, but also
45
- all threads spwaned during the execution of the rack request.
46
- - new option merge_fibers: whether or not to merge the profile data for all fibers under their creating thread
47
- * fixed setting threshold bug when displaying stack profiles (thx to Michal Konarski)
48
- * code related to printing profiles is now autoloaded for efficiency (thx to Dave Gynn)
49
-
50
- 0.15.9 (2015-12-08)
51
- ======================
52
- * rack profiler now supports lambdas for generating profile paths (thx to Jean Rougé)
53
- * fixed a bug when printing graph profiles
54
-
55
- 0.15.8 (2015-04-24)
56
- ======================
57
- * added missing assets to gem build
58
- * fixed randomly failing test
59
-
60
- 0.15.7 (2015-04-23)
61
- ======================
62
- * html profiles are now single page (thx to Thomas Leishman)
63
-
64
- 0.15.6 (2015-02-22)
65
- ======================
66
- * improved upon computing children time in graph printers
67
-
68
- 0.15.5 (2015-02-22)
69
- ======================
70
- * changed output format of flat_printer_with_line_number
71
- * support using multi printer from command line (Dov Murik)
72
-
73
- 0.15.4 (2015-02-14)
74
- ======================
75
- * using env variable to specify mesaurement mode work again
76
- * measuring memory/object allocations works for 2.1 adn 2.2 again
77
-
78
- 0.15.3 (2015-01-16)
79
- ======================
80
- * support ruby 2.2.0
81
-
82
- 0.15.2 (2014-05-20)
83
- ======================
84
- * rack middleware creates print dir for profile result (Neng)
85
-
86
- 0.15.1 (2014-05-20)
87
- ======================
88
- * added license to gemspec
89
-
90
- 0.15.0 (2014-05-02)
91
- ======================
92
- * improved cpu time measurement (Charlie Somerville)
93
-
94
- 0.14.2 (2014-01-05)
95
- ======================
96
- * hopefully fixed compile problem under Windows
97
-
98
- 0.14.0 (2014-01-02)
99
- ======================
100
- * support ruby 2.1.0
101
- * dropped support for 1.8.x, 1.9.1 and 1.9.2
102
-
103
- 0.13.1 (2013-12-14)
104
- ======================
105
- * speed up for displaying large call stacks (Benjamin Quoming)
106
-
107
- 0.13 (2013-03-10)
108
- ======================
109
- * support fibers on 1.9.x+
110
- * improved display for very wide call stacks (Sammy Larbi)
111
-
112
- 0.12.2 (2013-02-13)
113
- ======================
114
- * Fixed segfault when using falcon or railsexpress patches for 1.9.3
115
-
116
- 0.12.1 (2013-01-07)
117
- ======================
118
- * Add back in pause/resume support since Rails uses it
119
-
120
- 0.12.0 (2013-01-06)
121
- ======================
122
- * Ruby 2.0.0 support (Charlie Savage)
123
- * Fix issue where profiling results could exceed 100% if profile code had multiple top level methods (Charlie Savage)
124
- * Replaced RubyProf::Thread#top_method with RubyProf::Thread#top_methods (Charlie Savage)
125
- * Added RubyProf::Thread#total_time (Charlie Savage)
126
- * Remove the -r and -e command line options. If you need specific libraries or code profiled then add them
127
- to your code (Charlie Savage).
128
- * Rewrite ruby-prof script to be more self-contained (Gary Weaver)
129
- * Fix list formatting in readme (Thilo Rusche)
130
- * Remove pause/resume support since its buggy and complicates the code
131
-
132
- 0.11.3 (2012-12-27)
133
- ======================
134
- * Prefix c functions with prof_ to avoid name conflicts (Kenta Murata)
135
- * Update ruby-prof script to avoid seg faults (Gary Weaver)
136
- * Rakefile updates (Roger Pack)
137
- * Fix regexp file reading (Gilbert Roulot)
138
- * Update documentation (Timo Schilling)
139
- * Fix up ruby warnings (Mike Gehard)
140
- * Remove duplicate code (Chas Lemley)
141
-
142
-
143
- 0.11.2 (2012-05-06)
144
- ======================
145
- * Fix compile issue with BOOL. Should be _Bool for C99.
146
-
147
-
148
- 0.11.1 (2012-05-06)
149
- ======================
150
- * Added option --exclude-common-callbacks, plus exclude #map and #inject in common cycles (Vasily Fedoseyev)
151
- * Add option --exclude-common-cycles to exclude common iterators (Vasily Fedoseyev)
152
- * Allow method elimination from command line via '-x' and '-X' keys (Vasily Fedoseyev)
153
-
154
-
155
- 0.11.0 (2012-05-05)
156
- ======================
157
- * Fix pause/resume so it actually works and add tests (David Barri)
158
- * Resume now returns the result of the block when given (David Barri)
159
- * Make recursive method explanation more clear (Charlie Savage)
160
- * Fix ruby warnings (Charlie Savage)
161
- * Toggle GC.enable_stats when profiling for memory to get the data (Vasily Fedoseyev)
162
- * Fix patched ruby support and remove some warnings (Vasily Fedoseyev)
163
- * Fix tests on 1.8.7 (rogerdpack)
164
-
165
-
166
- 0.11.0.rc3 (2012-03-26)
167
- ======================
168
- * Include missing files in gemspec (Charlie Savage).
169
-
170
-
171
- 0.11.0.rc2 (2012-03-25)
172
- ======================
173
- * Lots of improvements to Rack handler - this can be used to profile requests
174
- in Rails and other rack-based ruby web frameworks (Charlie Savage).
175
- * Reimplemented handling of recursive calls using CallInfoVisitor (Charlie Savage).
176
- * Fix bug where child times were not correctly reported in complicated
177
- call graphs with recursion like in frameworks like Rails (Charlie Savage).
178
- * Add in recursive call information to Flat, Graph and Graph HTML reports (Charlie Savage).
179
- * Add in new thread class add added RubyProf::Thread#top_method to
180
- make report generation easier (Charlie Savage).
181
- * Add in CallInfoVisitor class to make it easy to iterate over a call graph (Charlie Savage).
182
- * Add in CallInfoPrinter to make it visualize RubyProf's internal call graphs (Charlie Savage).
183
- * Significant updates to documentation (Charlie Savage).
184
- * More c code cleanup (Charlie Savage).
185
-
186
- 0.11.0.rc1 (2012-03-24)
187
- ======================
188
- * Big internal refactoring of C code to make RubyProf easier to understand and extend (Charlie Savage).
189
- * Profile results are now returned as instances of a new class RubyProf::Profile. The old api
190
- is supported via a compatability layer that at some point will be deprecated. (Charlie Savage).
191
- * On Windows, use QueryPerformanceCounter and QueryPerformanceFrequency to measure CPU time instead
192
- of rdtsc. This change is based on Microsoft's recommendation (Charlie Savage).
193
- * On Windows use GetProcessTimes to return real PROCESS_TIME times instead of wall times (Charlie Savage).
194
- * Split out tests for each time of measurement (cpu_time, process_time, etc.) (Charlie Savage).
195
- * Dropped support for Ruby 1.8.4 and 1.8.6 and 1.9.0 (Charlie Savage).
196
- * Added support for sorting results by total, self, wait and child times (Jan Suchal)
197
- * Added tests for sorting behaviour & removed options from constructor to print method (Jan Suchal)
198
- * Fix line number tests due to changes at top of file (Charlie Savage).
199
- * Add encoding statement to top of all files for Ruby 1.9.x compatability (Charlie Savage).
200
- * Add def file for VC to avoid the whole declspec annoyance (Charlie Savage).
201
- * Update test suite to ensure current working directory is correct (Charlie Savage).
202
- * Modernize gem file and remove various custom/home grown solutions that aren't needed anymore (Charlie Savage).
203
- * Remove custom mingw build scripts, use rake compiler instead (Charlie Savage).
204
- * Fixes for compiling with VC 2010 (Charlie Savage).
205
-
206
- 0.10.8 (2011-07-06)
207
- ======================
208
- * 1.9.3 super class (Roger Pack)
209
-
210
- 0.10.7 (2011-05-09)
211
- ======================
212
- * Fix a bug with REE's GC stats. Issue #53 [thanks graaff]
213
-
214
- 0.10.6 (2011-04-29)
215
- ======================
216
- * Slightly more normalized url for linux/windows links to files.
217
-
218
- 0.10.5 (2011-04-20)
219
- =======================
220
- * 1.8.6 compat for -v command (bug fix)
221
-
222
- 0.10.4 (2011-04-20)
223
- =======================
224
- * Faster load time for ruby-prof itself.
225
-
226
- 0.10.3
227
- =======================
228
- * Can cleanly load before rubygems now.
229
-
230
- 0.10.2
231
- =======================
232
- * Fix for 1.9.2, os x for latest commits (thanks skaes!)
233
-
234
- 0.10.1
235
- =======================
236
- * Fix bug in linux wall time, also load with only relative paths so that you can use it to benchmark rubygems startup overhead,
237
- itself.
238
-
239
- 0.10.0
240
- =======================
241
- * Some rdoc changes, for linux wall time attempt to use higher granularity (thanks to all the contributors for this round!)
242
-
243
- 0.9.2
244
- =======================
245
- * Make graphviz work on 1.8.6
246
- * Roll back some 1.9.2 optimizations until I can figure out what caused them.
247
-
248
- 0.9.1
249
- =======================
250
- * Add a graphviz output
251
-
252
- 0.9.0
253
- =======================
254
- * measurements for recursive methods are now correct
255
- * gave up on splitting up recursive methods according to call depth
256
- * made it possible to eliminate methods from profiling results
257
- * new printer for call stack visualization
258
- * new printer to print several profiles in one run
259
- * HTML profiles contain Textmate links so you can jump to the source code easily
260
- * producing an event log is now a runtime option
261
-
262
- 0.7.10 (2009-01-22)
263
- =======================
264
- * fix SEGFAULT in 1.9
265
- * add new printer flat_printer_with_line_numbers
266
-
267
- 0.7.7 (2009-01-13)
268
- ======================
269
- * "fix" multi threading support for 1.9 http://redmine.ruby-lang.org/issues/show/2012
270
- * speedups
271
-
272
- 0.7.6 (2009-12-31)
273
- ======================
274
- * fix some tests for 1.9 (no real code changes)
275
-
276
- 0.7.5 (2009-12)
277
- ========================
278
- * fix a GC collection bug (nobu's patch).
279
- * correctly report recursive call depths (Kevin Scaldeferri).
280
- * sort methods on output (Kevin Scaldeferri).
281
-
282
- 0.7.3 (2008-12-09)
283
- ========================
284
- * Fixed compile error with new x86_64 code using GCC.
285
-
286
- 0.7.2 (2008-12-08)
287
- ========================
288
- * Fixed major bug in printing child methods in graph reports.
289
-
290
- * Fixes for supporting x86_64 machines (Diego Pettenò)
291
-
292
-
293
- 0.7.1 (2008-11-28)
294
- ========================
295
- * Added new AggregateCallInfo class for printers to
296
- make results easier to read. Take this call sequence
297
- for example:
298
-
299
- A B C
300
- | | |
301
- Z A A
302
- | |
303
- Z Z
304
-
305
- By default, ruby-prof will show that Z was called by 3 separate
306
- instances of A. In an IDE that is helpful but in a text report
307
- it is not since it makes the report much harder to read.
308
- As a result, printers now aggregate together callers (and children),
309
- matching ruby-prof's output from versions prior to 0.7.0.
310
-
311
- * Fixes for supporting x86_64 machines (Matt Sanford)
312
-
313
-
314
- 0.7.0 (2008-11-04)
315
- ========================
316
-
317
- Features
318
- --------
319
- * Added two new methods - RubyProf.resume and RubyProf.pause.
320
- RubyProf.resume takes an optional block, which ensures that
321
- RubyProf.pause is called. For example:
322
-
323
- 10.times do |i|
324
- RubyProf.resume do
325
- # Some long process
326
- end
327
- end
328
-
329
- result = RubyProf.stop
330
-
331
- * Added support for profiling tests that use Ruby's built-in
332
- unit test framework (ie, test derived from
333
- Test::Unit::TestCase). To enable profiling simply add
334
- the following line of code to your test class:
335
-
336
- include RubyProf::Test
337
-
338
- By default, profiling results are written to the current
339
- processes working directory. To change this, or other
340
- profiling options, simply modify the PROFILE_OPTIONS hash
341
- table as needed.
342
-
343
- * Used the new support for profiling test cases to revamp
344
- the way that Rails profiling works. For more information
345
- please refer to RubyProf's documentation.
346
-
347
- * Keep track of call stack for each method to enable more
348
- powerful profile visualizations in Integrated Development
349
- Environments (Hin Boean, work supported by CodeGear).
350
-
351
- * Expose measurements to Ruby (Jeremy Kemper).
352
-
353
- * Add support for additional memory measurements modes in Ruby 1.9 (Jeremy Kemper).
354
-
355
- * Add support for Lloyd Hilaiel's Ruby patch for measuring total heap size.
356
- See http://lloydforge.org/projects/ruby. (Jeremy Kemper).
357
-
358
-
359
- Fixes
360
- -------
361
- * RubyProf.profile no longer crashes if an exception is
362
- thrown during a profiling run.
363
-
364
- * Measure memory in fractional kilobytes rather than rounding down (Jeremy Kemper)
365
-
366
-
367
- 0.6.0 (2008-02-03)
368
- ========================
369
-
370
- ruby-prof 0.6.0 adds support for Ruby 1.9 and memory profiling.
371
-
372
- Features
373
- --------
374
- * Added support for ruby 1.9 (Shugo Maeda)
375
- * Added support for outputting printer results to a String, Array or IO
376
- object (Michael Granger)
377
- * Add new memory profiling mode. Note this mode depends on a
378
- patched Ruby interpreter (Alexander Dymo)
379
-
380
- Fixes
381
- -------
382
- * Improvements to GraphHtmlPrinter including updated documentation,
383
- fixes for min_time support, ability to specify templates using
384
- strings or filenames, and table layout fixes (Makoto Kuwata)
385
- * Fixes to scaling factor for calltrees so that precision is not lost
386
- due to the conversion to doubles (Sylvain Joyeux)
387
- * Changed constant ALLOCATED_OBJECTS to ALLOCATIONS in the C code to
388
- match the Ruby code (Sylvain Joyeux)
389
- * Added support for calltree printer to ruby-prof binary script (Sylvain Joyeux)
390
- * Fix support for the allocator measure mode to extconf.rb (Sylvain Joyeux)
391
- * Honor measure mode when specified on the command line (Sylvain Joyeux)
392
- * Sorting of methods by total time was incorrect (Dan Fitch, Charlie Savage)
393
- * Fix ruby-prof to work with the latest version of GEMS (Alexander Dymo)
394
- * Always define MEASURE_CPU_TIME and MEASURE_ALLOCATIONS in Ruby code, but
395
- set their values to nil if the functionality is not available.
396
-
397
-
398
- 0.5.2 (2007-07-19)
399
- ========================
400
-
401
- ruby-prof 0.5.2 is a bug fix release.
402
-
403
- Fixes
404
- -------
405
- * Include missing rails plugin
406
-
407
-
408
- 0.5.1 (2007-07-18)
409
- ========================
410
-
411
- ruby-prof 0.5.1 is a bug fix and performance release.
412
-
413
- Performance
414
- --------
415
- * Significantly reduced the number of thread lookups by
416
- caching the last executed thread.
417
-
418
- Fixes
419
- -------
420
- * Properly escape method names in HTML reports
421
- * Fix use of -m and --min-percent command line switches
422
- * Default source file information to ruby_runtime#0 for c calls
423
- * Moved rails_plugin to top level so it is more obvious
424
- * Updated rails_plugin to write reports to the current
425
- Rails log directory
426
- * Added additional tests
427
-
428
-
429
- 0.5.0 (2007-07-09)
430
- ========================
431
-
432
- Features
433
- --------
434
- * Added support for timing multi-threaded applications
435
- * Added support for 64 bit systems (patch from Diego 'Flameeyes' Petten)
436
- * Added suport for outputting data in the format used by
437
- KCacheGrind (patch from Carl Shimer)
438
- * Add filename and line numbers to call tree information (patch from Carl Shimer)
439
- * Added Visual Studio 2005 project file.
440
- * Added replace-progname switch, als rcov.
441
- * Added better support for recursive methods
442
- * Added better support for profiling Rails applications
443
-
444
- Fixes
445
- -------
446
- * Fixes bug when the type of an attached object (singleton) is inherited
447
- from T_OBJECT as opposed to being a T_OBJECT (identified by Francis Cianfrocca)
448
- * ruby-prof now works in IRB.
449
- * Fix sort order in reports.
450
- * Fixed rdoc compile error.
451
- * Fix tabs in erb template for graph html report on windows.
452
-
453
- 0.4.1 (2006-06-26)
454
- ========================
455
-
456
- Features
457
- --------
458
- * Added a RubyProf.running? method to indicate whether a profile is in progress.
459
- * Added tgz and zip archives to release
460
-
461
- Fixes
462
- -------
463
- * Duplicate method names are now allowed
464
- * The documentation has been updated to show the correct API usage is RubyProf.stop not RubyProf.end
465
-
466
-
467
- 0.4.0 (2006-06-16)
468
- ========================
469
- Features
470
- --------
471
- * added support for call graphs
472
- * added support for printers. Currently there is a FlatPrinter,
473
- GraphPrinter and GraphHtmlPrinter.
474
- * added support for recursive methods
475
- * added Windows support
476
- * now packaged as a RubyGem
477
-
478
- Fixes
479
- -------
480
- * Fixes bug where RubyProf would crash depending on the
481
- way it was invoked - for example, it did not run when
482
- used with Arachno Ruby's customized version of Ruby.
1
+ 0.18.0 (2019-05-27)
2
+ =====================
3
+ Fixes
4
+ ------
5
+ * Fix grouping by thread/fiber (Charlie Savage)
6
+ * Fix include/exclude thread checking (Charlie Savage)
7
+ * Fix failing tests (Charlie Savage)
8
+ * Fix grouping by thread_id and fiber_id (Charlie Savage)
9
+ * Update Visual Studio solution to 2019 (Charlie Savage)
10
+ * Adjust AbstractPrinter#editor_uri so it's possible to disable uri (Maciek Dubiński)-
11
+ * Fix -X/--exclude-file option not working (John Lindgren)
12
+ * Different directory for middleware output in readme (Aldric Giacomoni)
13
+ * Fixing spelling mistakes and typos (David Kennedy and Roger Pack)
14
+ * Add "allow_exceptions" option to Profile (Ryan Duryea)
15
+ * Update readme (Jan Piotrowski, Nathan Seither, victor-am)
16
+ * Travis updates (Niocals Leger and Charlie Savage)
17
+ * Fix NewRelic module detection in exclude_common_methods! (Ben Hughes)
18
+
19
+ 0.17.0 (2017-12-17)
20
+ =====================
21
+ * Changed method/class names produced by the callgrind printer to be more kcachegrind
22
+ friendly (thx to Nelson Gauthier and Ben Hughes, see https://github.com/ruby-prof/ruby-prof/pull/200).
23
+ * Recursive instances of a method call are now dtected during profiling (thx to Nelson Gauthier and
24
+ Ben Hughes, see https://github.com/ruby-prof/ruby-prof/pull/201).
25
+ * Methods can now be ignored during a profiling run instead of eliminating them
26
+ after a profile run, which has been deprecated (thx to Nelson Gauthier and Ben Hughes,
27
+ see https://github.com/ruby-prof/ruby-prof/pull/202).
28
+ * Use RUBY_PROF_EDITOR_URI=emacs to open source code links in the one true editor.
29
+ (thx Alexander Egorov, see https://github.com/ruby-prof/ruby-prof/pull/183 and
30
+ https://github.com/typester/emacs-handler).
31
+ * Fixed that calling profile.stop would stop profiling all active profiling runs.
32
+ * Fixed that remembering parent call frame pointer before stack reallocation could cause a segfault.
33
+
34
+ 0.16.2 (2016-08-25)
35
+ =====================
36
+ * fixed incorrect setting of RUBY_VERSION macro
37
+
38
+ 0.16.1 (2016-08-24)
39
+ =====================
40
+ * fixed compile problem with ruby 2.1.10
41
+
42
+ 0.16.0 (2016-08-24)
43
+ =====================
44
+ * ruby-prof can now be installed if ruby has been compiled with --disable-gems or
45
+ RUBYOPT includes --disable-gems (thx to Arthur Nogueira Neves)
46
+ * Profile.new now accepts and prefers an options hash:
47
+ - measure_mode: one of the RubyProf measure mode constants
48
+ - exclude_threads: an array of threads to ignore when collecting profile data
49
+ - include_threads: an array of threads to include when collecting profile data
50
+ - merge_fibers: whether or not to merge the profile data for all fibers under their creating thread
51
+ * overhauled printer for cachegrind profiles:
52
+ - profile data for each thread dumped to a separate file, as kcachegrind does not
53
+ fully implement the cachegrind specification
54
+ - this required a change in interface: it's now necessary to specify a directory
55
+ where to dump the cachegrind files
56
+ - naming convention for cachegrind files changed so that kcachegrind shows them
57
+ all in the open dialog
58
+ * improved Rack middleware:
59
+ - it's now possible to use the MultiPrinter
60
+ - new option ignore_existing_threads: will ignore all prexisiting threads
61
+ when profiling a request, except the thread perfoming the request.
62
+ - new option request_thread_only: will ignore all preexisting threads, but also
63
+ all threads spwaned during the execution of the rack request.
64
+ - new option merge_fibers: whether or not to merge the profile data for all fibers under their creating thread
65
+ * fixed setting threshold bug when displaying stack profiles (thx to Michal Konarski)
66
+ * code related to printing profiles is now autoloaded for efficiency (thx to Dave Gynn)
67
+
68
+ 0.15.9 (2015-12-08)
69
+ ======================
70
+ * rack profiler now supports lambdas for generating profile paths (thx to Jean Rougé)
71
+ * fixed a bug when printing graph profiles
72
+
73
+ 0.15.8 (2015-04-24)
74
+ ======================
75
+ * added missing assets to gem build
76
+ * fixed randomly failing test
77
+
78
+ 0.15.7 (2015-04-23)
79
+ ======================
80
+ * html profiles are now single page (thx to Thomas Leishman)
81
+
82
+ 0.15.6 (2015-02-22)
83
+ ======================
84
+ * improved upon computing children time in graph printers
85
+
86
+ 0.15.5 (2015-02-22)
87
+ ======================
88
+ * changed output format of flat_printer_with_line_number
89
+ * support using multi printer from command line (Dov Murik)
90
+
91
+ 0.15.4 (2015-02-14)
92
+ ======================
93
+ * using env variable to specify mesaurement mode work again
94
+ * measuring memory/object allocations works for 2.1 adn 2.2 again
95
+
96
+ 0.15.3 (2015-01-16)
97
+ ======================
98
+ * support ruby 2.2.0
99
+
100
+ 0.15.2 (2014-05-20)
101
+ ======================
102
+ * rack middleware creates print dir for profile result (Neng)
103
+
104
+ 0.15.1 (2014-05-20)
105
+ ======================
106
+ * added license to gemspec
107
+
108
+ 0.15.0 (2014-05-02)
109
+ ======================
110
+ * improved cpu time measurement (Charlie Somerville)
111
+
112
+ 0.14.2 (2014-01-05)
113
+ ======================
114
+ * hopefully fixed compile problem under Windows
115
+
116
+ 0.14.0 (2014-01-02)
117
+ ======================
118
+ * support ruby 2.1.0
119
+ * dropped support for 1.8.x, 1.9.1 and 1.9.2
120
+
121
+ 0.13.1 (2013-12-14)
122
+ ======================
123
+ * speed up for displaying large call stacks (Benjamin Quoming)
124
+
125
+ 0.13 (2013-03-10)
126
+ ======================
127
+ * support fibers on 1.9.x+
128
+ * improved display for very wide call stacks (Sammy Larbi)
129
+
130
+ 0.12.2 (2013-02-13)
131
+ ======================
132
+ * Fixed segfault when using falcon or railsexpress patches for 1.9.3
133
+
134
+ 0.12.1 (2013-01-07)
135
+ ======================
136
+ * Add back in pause/resume support since Rails uses it
137
+
138
+ 0.12.0 (2013-01-06)
139
+ ======================
140
+ * Ruby 2.0.0 support (Charlie Savage)
141
+ * Fix issue where profiling results could exceed 100% if profile code had multiple top level methods (Charlie Savage)
142
+ * Replaced RubyProf::Thread#top_method with RubyProf::Thread#top_methods (Charlie Savage)
143
+ * Added RubyProf::Thread#total_time (Charlie Savage)
144
+ * Remove the -r and -e command line options. If you need specific libraries or code profiled then add them
145
+ to your code (Charlie Savage).
146
+ * Rewrite ruby-prof script to be more self-contained (Gary Weaver)
147
+ * Fix list formatting in readme (Thilo Rusche)
148
+ * Remove pause/resume support since its buggy and complicates the code
149
+
150
+ 0.11.3 (2012-12-27)
151
+ ======================
152
+ * Prefix c functions with prof_ to avoid name conflicts (Kenta Murata)
153
+ * Update ruby-prof script to avoid seg faults (Gary Weaver)
154
+ * Rakefile updates (Roger Pack)
155
+ * Fix regexp file reading (Gilbert Roulot)
156
+ * Update documentation (Timo Schilling)
157
+ * Fix up ruby warnings (Mike Gehard)
158
+ * Remove duplicate code (Chas Lemley)
159
+
160
+
161
+ 0.11.2 (2012-05-06)
162
+ ======================
163
+ * Fix compile issue with BOOL. Should be _Bool for C99.
164
+
165
+
166
+ 0.11.1 (2012-05-06)
167
+ ======================
168
+ * Added option --exclude-common-callbacks, plus exclude #map and #inject in common cycles (Vasily Fedoseyev)
169
+ * Add option --exclude-common-cycles to exclude common iterators (Vasily Fedoseyev)
170
+ * Allow method elimination from command line via '-x' and '-X' keys (Vasily Fedoseyev)
171
+
172
+
173
+ 0.11.0 (2012-05-05)
174
+ ======================
175
+ * Fix pause/resume so it actually works and add tests (David Barri)
176
+ * Resume now returns the result of the block when given (David Barri)
177
+ * Make recursive method explanation more clear (Charlie Savage)
178
+ * Fix ruby warnings (Charlie Savage)
179
+ * Toggle GC.enable_stats when profiling for memory to get the data (Vasily Fedoseyev)
180
+ * Fix patched ruby support and remove some warnings (Vasily Fedoseyev)
181
+ * Fix tests on 1.8.7 (rogerdpack)
182
+
183
+
184
+ 0.11.0.rc3 (2012-03-26)
185
+ ======================
186
+ * Include missing files in gemspec (Charlie Savage).
187
+
188
+
189
+ 0.11.0.rc2 (2012-03-25)
190
+ ======================
191
+ * Lots of improvements to Rack handler - this can be used to profile requests
192
+ in Rails and other rack-based ruby web frameworks (Charlie Savage).
193
+ * Reimplemented handling of recursive calls using CallInfoVisitor (Charlie Savage).
194
+ * Fix bug where child times were not correctly reported in complicated
195
+ call graphs with recursion like in frameworks like Rails (Charlie Savage).
196
+ * Add in recursive call information to Flat, Graph and Graph HTML reports (Charlie Savage).
197
+ * Add in new thread class add added RubyProf::Thread#top_method to
198
+ make report generation easier (Charlie Savage).
199
+ * Add in CallInfoVisitor class to make it easy to iterate over a call graph (Charlie Savage).
200
+ * Add in CallInfoPrinter to make it visualize RubyProf's internal call graphs (Charlie Savage).
201
+ * Significant updates to documentation (Charlie Savage).
202
+ * More c code cleanup (Charlie Savage).
203
+
204
+ 0.11.0.rc1 (2012-03-24)
205
+ ======================
206
+ * Big internal refactoring of C code to make RubyProf easier to understand and extend (Charlie Savage).
207
+ * Profile results are now returned as instances of a new class RubyProf::Profile. The old api
208
+ is supported via a compatability layer that at some point will be deprecated. (Charlie Savage).
209
+ * On Windows, use QueryPerformanceCounter and QueryPerformanceFrequency to measure CPU time instead
210
+ of rdtsc. This change is based on Microsoft's recommendation (Charlie Savage).
211
+ * On Windows use GetProcessTimes to return real PROCESS_TIME times instead of wall times (Charlie Savage).
212
+ * Split out tests for each time of measurement (cpu_time, process_time, etc.) (Charlie Savage).
213
+ * Dropped support for Ruby 1.8.4 and 1.8.6 and 1.9.0 (Charlie Savage).
214
+ * Added support for sorting results by total, self, wait and child times (Jan Suchal)
215
+ * Added tests for sorting behaviour & removed options from constructor to print method (Jan Suchal)
216
+ * Fix line number tests due to changes at top of file (Charlie Savage).
217
+ * Add encoding statement to top of all files for Ruby 1.9.x compatability (Charlie Savage).
218
+ * Add def file for VC to avoid the whole declspec annoyance (Charlie Savage).
219
+ * Update test suite to ensure current working directory is correct (Charlie Savage).
220
+ * Modernize gem file and remove various custom/home grown solutions that aren't needed anymore (Charlie Savage).
221
+ * Remove custom mingw build scripts, use rake compiler instead (Charlie Savage).
222
+ * Fixes for compiling with VC 2010 (Charlie Savage).
223
+
224
+ 0.10.8 (2011-07-06)
225
+ ======================
226
+ * 1.9.3 super class (Roger Pack)
227
+
228
+ 0.10.7 (2011-05-09)
229
+ ======================
230
+ * Fix a bug with REE's GC stats. Issue #53 [thanks graaff]
231
+
232
+ 0.10.6 (2011-04-29)
233
+ ======================
234
+ * Slightly more normalized url for linux/windows links to files.
235
+
236
+ 0.10.5 (2011-04-20)
237
+ =======================
238
+ * 1.8.6 compat for -v command (bug fix)
239
+
240
+ 0.10.4 (2011-04-20)
241
+ =======================
242
+ * Faster load time for ruby-prof itself.
243
+
244
+ 0.10.3
245
+ =======================
246
+ * Can cleanly load before rubygems now.
247
+
248
+ 0.10.2
249
+ =======================
250
+ * Fix for 1.9.2, os x for latest commits (thanks skaes!)
251
+
252
+ 0.10.1
253
+ =======================
254
+ * Fix bug in linux wall time, also load with only relative paths so that you can use it to benchmark rubygems startup overhead,
255
+ itself.
256
+
257
+ 0.10.0
258
+ =======================
259
+ * Some rdoc changes, for linux wall time attempt to use higher granularity (thanks to all the contributors for this round!)
260
+
261
+ 0.9.2
262
+ =======================
263
+ * Make graphviz work on 1.8.6
264
+ * Roll back some 1.9.2 optimizations until I can figure out what caused them.
265
+
266
+ 0.9.1
267
+ =======================
268
+ * Add a graphviz output
269
+
270
+ 0.9.0
271
+ =======================
272
+ * measurements for recursive methods are now correct
273
+ * gave up on splitting up recursive methods according to call depth
274
+ * made it possible to eliminate methods from profiling results
275
+ * new printer for call stack visualization
276
+ * new printer to print several profiles in one run
277
+ * HTML profiles contain Textmate links so you can jump to the source code easily
278
+ * producing an event log is now a runtime option
279
+
280
+ 0.7.10 (2009-01-22)
281
+ =======================
282
+ * fix SEGFAULT in 1.9
283
+ * add new printer flat_printer_with_line_numbers
284
+
285
+ 0.7.7 (2009-01-13)
286
+ ======================
287
+ * "fix" multi threading support for 1.9 http://redmine.ruby-lang.org/issues/show/2012
288
+ * speedups
289
+
290
+ 0.7.6 (2009-12-31)
291
+ ======================
292
+ * fix some tests for 1.9 (no real code changes)
293
+
294
+ 0.7.5 (2009-12)
295
+ ========================
296
+ * fix a GC collection bug (nobu's patch).
297
+ * correctly report recursive call depths (Kevin Scaldeferri).
298
+ * sort methods on output (Kevin Scaldeferri).
299
+
300
+ 0.7.3 (2008-12-09)
301
+ ========================
302
+ * Fixed compile error with new x86_64 code using GCC.
303
+
304
+ 0.7.2 (2008-12-08)
305
+ ========================
306
+ * Fixed major bug in printing child methods in graph reports.
307
+
308
+ * Fixes for supporting x86_64 machines (Diego Pettenò)
309
+
310
+
311
+ 0.7.1 (2008-11-28)
312
+ ========================
313
+ * Added new AggregateCallInfo class for printers to
314
+ make results easier to read. Take this call sequence
315
+ for example:
316
+
317
+ A B C
318
+ | | |
319
+ Z A A
320
+ | |
321
+ Z Z
322
+
323
+ By default, ruby-prof will show that Z was called by 3 separate
324
+ instances of A. In an IDE that is helpful but in a text report
325
+ it is not since it makes the report much harder to read.
326
+ As a result, printers now aggregate together callers (and children),
327
+ matching ruby-prof's output from versions prior to 0.7.0.
328
+
329
+ * Fixes for supporting x86_64 machines (Matt Sanford)
330
+
331
+
332
+ 0.7.0 (2008-11-04)
333
+ ========================
334
+
335
+ Features
336
+ --------
337
+ * Added two new methods - RubyProf.resume and RubyProf.pause.
338
+ RubyProf.resume takes an optional block, which ensures that
339
+ RubyProf.pause is called. For example:
340
+
341
+ 10.times do |i|
342
+ RubyProf.resume do
343
+ # Some long process
344
+ end
345
+ end
346
+
347
+ result = RubyProf.stop
348
+
349
+ * Added support for profiling tests that use Ruby's built-in
350
+ unit test framework (ie, test derived from
351
+ Test::Unit::TestCase). To enable profiling simply add
352
+ the following line of code to your test class:
353
+
354
+ include RubyProf::Test
355
+
356
+ By default, profiling results are written to the current
357
+ processes working directory. To change this, or other
358
+ profiling options, simply modify the PROFILE_OPTIONS hash
359
+ table as needed.
360
+
361
+ * Used the new support for profiling test cases to revamp
362
+ the way that Rails profiling works. For more information
363
+ please refer to RubyProf's documentation.
364
+
365
+ * Keep track of call stack for each method to enable more
366
+ powerful profile visualizations in Integrated Development
367
+ Environments (Hin Boean, work supported by CodeGear).
368
+
369
+ * Expose measurements to Ruby (Jeremy Kemper).
370
+
371
+ * Add support for additional memory measurements modes in Ruby 1.9 (Jeremy Kemper).
372
+
373
+ * Add support for Lloyd Hilaiel's Ruby patch for measuring total heap size.
374
+ See http://lloydforge.org/projects/ruby. (Jeremy Kemper).
375
+
376
+
377
+ Fixes
378
+ -------
379
+ * RubyProf.profile no longer crashes if an exception is
380
+ thrown during a profiling run.
381
+
382
+ * Measure memory in fractional kilobytes rather than rounding down (Jeremy Kemper)
383
+
384
+
385
+ 0.6.0 (2008-02-03)
386
+ ========================
387
+
388
+ ruby-prof 0.6.0 adds support for Ruby 1.9 and memory profiling.
389
+
390
+ Features
391
+ --------
392
+ * Added support for ruby 1.9 (Shugo Maeda)
393
+ * Added support for outputting printer results to a String, Array or IO
394
+ object (Michael Granger)
395
+ * Add new memory profiling mode. Note this mode depends on a
396
+ patched Ruby interpreter (Alexander Dymo)
397
+
398
+ Fixes
399
+ -------
400
+ * Improvements to GraphHtmlPrinter including updated documentation,
401
+ fixes for min_time support, ability to specify templates using
402
+ strings or filenames, and table layout fixes (Makoto Kuwata)
403
+ * Fixes to scaling factor for calltrees so that precision is not lost
404
+ due to the conversion to doubles (Sylvain Joyeux)
405
+ * Changed constant ALLOCATED_OBJECTS to ALLOCATIONS in the C code to
406
+ match the Ruby code (Sylvain Joyeux)
407
+ * Added support for calltree printer to ruby-prof binary script (Sylvain Joyeux)
408
+ * Fix support for the allocator measure mode to extconf.rb (Sylvain Joyeux)
409
+ * Honor measure mode when specified on the command line (Sylvain Joyeux)
410
+ * Sorting of methods by total time was incorrect (Dan Fitch, Charlie Savage)
411
+ * Fix ruby-prof to work with the latest version of GEMS (Alexander Dymo)
412
+ * Always define MEASURE_CPU_TIME and MEASURE_ALLOCATIONS in Ruby code, but
413
+ set their values to nil if the functionality is not available.
414
+
415
+
416
+ 0.5.2 (2007-07-19)
417
+ ========================
418
+
419
+ ruby-prof 0.5.2 is a bug fix release.
420
+
421
+ Fixes
422
+ -------
423
+ * Include missing rails plugin
424
+
425
+
426
+ 0.5.1 (2007-07-18)
427
+ ========================
428
+
429
+ ruby-prof 0.5.1 is a bug fix and performance release.
430
+
431
+ Performance
432
+ --------
433
+ * Significantly reduced the number of thread lookups by
434
+ caching the last executed thread.
435
+
436
+ Fixes
437
+ -------
438
+ * Properly escape method names in HTML reports
439
+ * Fix use of -m and --min-percent command line switches
440
+ * Default source file information to ruby_runtime#0 for c calls
441
+ * Moved rails_plugin to top level so it is more obvious
442
+ * Updated rails_plugin to write reports to the current
443
+ Rails log directory
444
+ * Added additional tests
445
+
446
+
447
+ 0.5.0 (2007-07-09)
448
+ ========================
449
+
450
+ Features
451
+ --------
452
+ * Added support for timing multi-threaded applications
453
+ * Added support for 64 bit systems (patch from Diego 'Flameeyes' Petten)
454
+ * Added suport for outputting data in the format used by
455
+ KCacheGrind (patch from Carl Shimer)
456
+ * Add filename and line numbers to call tree information (patch from Carl Shimer)
457
+ * Added Visual Studio 2005 project file.
458
+ * Added replace-progname switch, als rcov.
459
+ * Added better support for recursive methods
460
+ * Added better support for profiling Rails applications
461
+
462
+ Fixes
463
+ -------
464
+ * Fixes bug when the type of an attached object (singleton) is inherited
465
+ from T_OBJECT as opposed to being a T_OBJECT (identified by Francis Cianfrocca)
466
+ * ruby-prof now works in IRB.
467
+ * Fix sort order in reports.
468
+ * Fixed rdoc compile error.
469
+ * Fix tabs in erb template for graph html report on windows.
470
+
471
+ 0.4.1 (2006-06-26)
472
+ ========================
473
+
474
+ Features
475
+ --------
476
+ * Added a RubyProf.running? method to indicate whether a profile is in progress.
477
+ * Added tgz and zip archives to release
478
+
479
+ Fixes
480
+ -------
481
+ * Duplicate method names are now allowed
482
+ * The documentation has been updated to show the correct API usage is RubyProf.stop not RubyProf.end
483
+
484
+
485
+ 0.4.0 (2006-06-16)
486
+ ========================
487
+ Features
488
+ --------
489
+ * added support for call graphs
490
+ * added support for printers. Currently there is a FlatPrinter,
491
+ GraphPrinter and GraphHtmlPrinter.
492
+ * added support for recursive methods
493
+ * added Windows support
494
+ * now packaged as a RubyGem
495
+
496
+ Fixes
497
+ -------
498
+ * Fixes bug where RubyProf would crash depending on the
499
+ way it was invoked - for example, it did not run when
500
+ used with Arachno Ruby's customized version of Ruby.