ruby-prof 0.18.0-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGES +500 -0
  3. data/LICENSE +25 -0
  4. data/README.rdoc +487 -0
  5. data/Rakefile +113 -0
  6. data/bin/ruby-prof +345 -0
  7. data/bin/ruby-prof-check-trace +45 -0
  8. data/examples/flat.txt +50 -0
  9. data/examples/graph.dot +84 -0
  10. data/examples/graph.html +823 -0
  11. data/examples/graph.txt +139 -0
  12. data/examples/multi.flat.txt +23 -0
  13. data/examples/multi.graph.html +760 -0
  14. data/examples/multi.grind.dat +114 -0
  15. data/examples/multi.stack.html +547 -0
  16. data/examples/stack.html +547 -0
  17. data/ext/ruby_prof/extconf.rb +68 -0
  18. data/ext/ruby_prof/rp_call_info.c +425 -0
  19. data/ext/ruby_prof/rp_call_info.h +53 -0
  20. data/ext/ruby_prof/rp_measure.c +40 -0
  21. data/ext/ruby_prof/rp_measure.h +45 -0
  22. data/ext/ruby_prof/rp_measure_allocations.c +76 -0
  23. data/ext/ruby_prof/rp_measure_cpu_time.c +136 -0
  24. data/ext/ruby_prof/rp_measure_gc_runs.c +73 -0
  25. data/ext/ruby_prof/rp_measure_gc_time.c +60 -0
  26. data/ext/ruby_prof/rp_measure_memory.c +77 -0
  27. data/ext/ruby_prof/rp_measure_process_time.c +71 -0
  28. data/ext/ruby_prof/rp_measure_wall_time.c +45 -0
  29. data/ext/ruby_prof/rp_method.c +630 -0
  30. data/ext/ruby_prof/rp_method.h +75 -0
  31. data/ext/ruby_prof/rp_stack.c +173 -0
  32. data/ext/ruby_prof/rp_stack.h +63 -0
  33. data/ext/ruby_prof/rp_thread.c +277 -0
  34. data/ext/ruby_prof/rp_thread.h +27 -0
  35. data/ext/ruby_prof/ruby_prof.c +794 -0
  36. data/ext/ruby_prof/ruby_prof.h +60 -0
  37. data/ext/ruby_prof/vc/ruby_prof.sln +31 -0
  38. data/ext/ruby_prof/vc/ruby_prof.vcxproj +141 -0
  39. data/lib/2.6.3/ruby_prof.so +0 -0
  40. data/lib/ruby-prof.rb +68 -0
  41. data/lib/ruby-prof/aggregate_call_info.rb +76 -0
  42. data/lib/ruby-prof/assets/call_stack_printer.css.html +117 -0
  43. data/lib/ruby-prof/assets/call_stack_printer.js.html +385 -0
  44. data/lib/ruby-prof/assets/call_stack_printer.png +0 -0
  45. data/lib/ruby-prof/call_info.rb +115 -0
  46. data/lib/ruby-prof/call_info_visitor.rb +40 -0
  47. data/lib/ruby-prof/compatibility.rb +179 -0
  48. data/lib/ruby-prof/method_info.rb +121 -0
  49. data/lib/ruby-prof/printers/abstract_printer.rb +104 -0
  50. data/lib/ruby-prof/printers/call_info_printer.rb +41 -0
  51. data/lib/ruby-prof/printers/call_stack_printer.rb +265 -0
  52. data/lib/ruby-prof/printers/call_tree_printer.rb +143 -0
  53. data/lib/ruby-prof/printers/dot_printer.rb +132 -0
  54. data/lib/ruby-prof/printers/flat_printer.rb +70 -0
  55. data/lib/ruby-prof/printers/flat_printer_with_line_numbers.rb +83 -0
  56. data/lib/ruby-prof/printers/graph_html_printer.rb +249 -0
  57. data/lib/ruby-prof/printers/graph_printer.rb +116 -0
  58. data/lib/ruby-prof/printers/multi_printer.rb +84 -0
  59. data/lib/ruby-prof/profile.rb +26 -0
  60. data/lib/ruby-prof/profile/exclude_common_methods.rb +207 -0
  61. data/lib/ruby-prof/profile/legacy_method_elimination.rb +50 -0
  62. data/lib/ruby-prof/rack.rb +174 -0
  63. data/lib/ruby-prof/task.rb +147 -0
  64. data/lib/ruby-prof/thread.rb +35 -0
  65. data/lib/ruby-prof/version.rb +3 -0
  66. data/lib/unprof.rb +10 -0
  67. data/ruby-prof.gemspec +58 -0
  68. data/test/abstract_printer_test.rb +53 -0
  69. data/test/aggregate_test.rb +136 -0
  70. data/test/basic_test.rb +128 -0
  71. data/test/block_test.rb +74 -0
  72. data/test/call_info_test.rb +78 -0
  73. data/test/call_info_visitor_test.rb +31 -0
  74. data/test/duplicate_names_test.rb +32 -0
  75. data/test/dynamic_method_test.rb +55 -0
  76. data/test/enumerable_test.rb +21 -0
  77. data/test/exceptions_test.rb +24 -0
  78. data/test/exclude_methods_test.rb +146 -0
  79. data/test/exclude_threads_test.rb +53 -0
  80. data/test/fiber_test.rb +79 -0
  81. data/test/issue137_test.rb +63 -0
  82. data/test/line_number_test.rb +80 -0
  83. data/test/measure_allocations_test.rb +26 -0
  84. data/test/measure_cpu_time_test.rb +212 -0
  85. data/test/measure_gc_runs_test.rb +32 -0
  86. data/test/measure_gc_time_test.rb +36 -0
  87. data/test/measure_memory_test.rb +33 -0
  88. data/test/measure_process_time_test.rb +61 -0
  89. data/test/measure_wall_time_test.rb +255 -0
  90. data/test/method_elimination_test.rb +84 -0
  91. data/test/module_test.rb +45 -0
  92. data/test/multi_printer_test.rb +104 -0
  93. data/test/no_method_class_test.rb +15 -0
  94. data/test/pause_resume_test.rb +166 -0
  95. data/test/prime.rb +54 -0
  96. data/test/printers_test.rb +275 -0
  97. data/test/printing_recursive_graph_test.rb +127 -0
  98. data/test/rack_test.rb +157 -0
  99. data/test/recursive_test.rb +215 -0
  100. data/test/singleton_test.rb +38 -0
  101. data/test/stack_printer_test.rb +77 -0
  102. data/test/stack_test.rb +138 -0
  103. data/test/start_stop_test.rb +112 -0
  104. data/test/test_helper.rb +267 -0
  105. data/test/thread_test.rb +187 -0
  106. data/test/unique_call_path_test.rb +202 -0
  107. data/test/yarv_test.rb +55 -0
  108. metadata +199 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: b3ca2e9d0e0792996d6246fcb5c2a76f8cb228be29e14db9fa315efef3056dd0
4
+ data.tar.gz: 86c19546e12af9509f101281fe1e845e19a7db814d29c0ef5409a2a0a7d46f0d
5
+ SHA512:
6
+ metadata.gz: c99558a587d1219b5f8b438580815aeed2ee94441c15cca67e7da9c7cdcfe5a698693be20374763459bb74f458dd524e3f5200af814e40cc859951991f754335
7
+ data.tar.gz: aedc25bae9d7d5d352ad923e258ea785604311c71b7c7d5cebd9c9b1b376d68f3230a786b11620888f84e921a0b198eec0e8afeccf87a310e8b1678de719bb43
data/CHANGES ADDED
@@ -0,0 +1,500 @@
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.