ruby-prof 0.17.0 → 0.18.0

Sign up to get free protection for your applications and to get access to all the features.
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.