Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 341 lines (267 sloc) 11.77 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340
0.11.2 (2012-05-06)
======================
* Fix compile issue with BOOL. Should be _Bool for C99.


0.11.1 (2012-05-06)
======================
* Added option --exclude-common-callbacks, plus exclude #map and #inject in common cycles (Vasily Fedoseyev)
* Add option --exclude-common-cycles to exclude common iterators (Vasily Fedoseyev)
* Allow method elimination from command line via '-x' and '-X' keys (Vasily Fedoseyev)


0.11.0 (2012-05-05)
======================
* Fix pause/resume so it actually works and add tests (David Barri)
* Resume now returns the result of the block when given (David Barri)
* Make recursive method explanation more clear (Charlie Savage)
* Fix ruby warnings (Charlie Savage)
* Toggle GC.enable_stats when profiling for memory to get the data (Vasily Fedoseyev)
* Fix patched ruby support and remove some warnings (Vasily Fedoseyev)
* Fix tests on 1.8.7 (rogerdpack)


0.11.0.rc3 (2012-03-26)
======================
* Include missing files in gemspec (Charlie Savage).


0.11.0.rc2 (2012-03-25)
======================
* Lots of improvements to Rack handler - this can be used to profile requests
  in Rails and other rack-based ruby web frameworks (Charlie Savage).
* Reimplemented handling of recursive calls using CallInfoVisitor (Charlie Savage).
* Fix bug where child times were not correctly reported in complicated
  call graphs with recursion like in frameworks like Rails (Charlie Savage).
* Add in recursive call information to Flat, Graph and Graph HTML reports (Charlie Savage).
* Add in new thread class add added RubyProf::Thread#top_method to
  make report generation easier (Charlie Savage).
* Add in CallInfoVisitor class to make it easy to iterate over a call graph (Charlie Savage).
* Add in CallInfoPrinter to make it visualize RubyProf's internal call graphs (Charlie Savage).
* Significant updates to documentation (Charlie Savage).
* More c code cleanup (Charlie Savage).

0.11.0.rc1 (2012-03-24)
======================
* Big internal refactoring of C code to make RubyProf easier to understand and extend (Charlie Savage).
* Profile results are now returned as instances of a new class RubyProf::Profile. The old api
  is supported via a compatability layer that at some point will be deprecated. (Charlie Savage).
* On Windows, use QueryPerformanceCounter and QueryPerformanceFrequency to measure CPU time instead
  of rdtsc. This change is based on Microsoft's recommendation (Charlie Savage).
* On Windows use GetProcessTimes to return real PROCESS_TIME times instead of wall times (Charlie Savage).
* Split out tests for each time of measurement (cpu_time, process_time, etc.) (Charlie Savage).
* Dropped support for Ruby 1.8.4 and 1.8.6 and 1.9.0 (Charlie Savage).
* Added support for sorting results by total, self, wait and child times (Jan Suchal)
* Added tests for sorting behaviour & removed options from constructor to print method (Jan Suchal)
* Fix line number tests due to changes at top of file (Charlie Savage).
* Add encoding statement to top of all files for Ruby 1.9.x compatability (Charlie Savage).
* Add def file for VC to avoid the whole declspec annoyance (Charlie Savage).
* Update test suite to ensure current working directory is correct (Charlie Savage).
* Modernize gem file and remove various custom/home grown solutions that aren't needed anymore (Charlie Savage).
* Remove custom mingw build scripts, use rake compiler instead (Charlie Savage).
* Fixes for compiling with VC 2010 (Charlie Savage).

0.10.8 (2011-07-06)
======================
* 1.9.3 super class (Roger Pack)

0.10.7 (2011-05-09)
======================
* Fix a bug with REE's GC stats. Issue #53 [thanks graaff]

0.10.6 (2011-04-29)
======================
* Slightly more normalized url for linux/windows links to files.

0.10.5 (2011-04-20)
=======================
* 1.8.6 compat for -v command (bug fix)

0.10.4 (2011-04-20)
=======================
* Faster load time for ruby-prof itself.

0.10.3
=======================
* Can cleanly load before rubygems now.

0.10.2
=======================
* Fix for 1.9.2, os x for latest commits (thanks skaes!)

0.10.1
=======================
* Fix bug in linux wall time, also load with only relative paths so that you can use it to benchmark rubygems startup overhead,
  itself.

0.10.0
=======================
* Some rdoc changes, for linux wall time attempt to use higher granularity (thanks to all the contributors for this round!)

0.9.2
=======================
* Make graphviz work on 1.8.6
* Roll back some 1.9.2 optimizations until I can figure out what caused them.

0.9.1
=======================
* Add a graphviz output

0.9.0
=======================
* measurements for recursive methods are now correct
* gave up on splitting up recursive methods according to call depth
* made it possible to eliminate methods from profiling results
* new printer for call stack visualization
* new printer to print several profiles in one run
* HTML profiles contain Textmate links so you can jump to the source code easily
* producing an event log is now a runtime option

0.7.10 (2009-01-22)
=======================
* fix SEGFAULT in 1.9
* add new printer flat_printer_with_line_numbers

0.7.7 (2009-01-13)
======================
* "fix" multi threading support for 1.9 http://redmine.ruby-lang.org/issues/show/2012
* speedups

0.7.6 (2009-12-31)
======================
* fix some tests for 1.9 (no real code changes)

0.7.5 (2009-12)
========================
* fix a GC collection bug (nobu's patch).
* correctly report recursive call depths (Kevin Scaldeferri).
* sort methods on output (Kevin Scaldeferri).

0.7.3 (2008-12-09)
========================
* Fixed compile error with new x86_64 code using GCC.

0.7.2 (2008-12-08)
========================
* Fixed major bug in printing child methods in graph reports.

* Fixes for supporting x86_64 machines (Diego Pettenò)


0.7.1 (2008-11-28)
========================
* Added new AggregateCallInfo class for printers to
  make results easier to read. Take this call sequence
  for example:

   A B C
   | | |
   Z A A
       | |
       Z Z

  By default, ruby-prof will show that Z was called by 3 separate
  instances of A. In an IDE that is helpful but in a text report
  it is not since it makes the report much harder to read.
  As a result, printers now aggregate together callers (and children),
  matching ruby-prof's output from versions prior to 0.7.0.

* Fixes for supporting x86_64 machines (Matt Sanford)


0.7.0 (2008-11-04)
========================

Features
--------
* Added two new methods - RubyProf.resume and RubyProf.pause.
  RubyProf.resume takes an optional block, which ensures that
  RubyProf.pause is called. For example:

  10.times do |i|
    RubyProf.resume do
      # Some long process
    end
  end

  result = RubyProf.stop

* Added support for profiling tests that use Ruby's built-in
  unit test framework (ie, test derived from
  Test::Unit::TestCase). To enable profiling simply add
  the following line of code to your test class:

    include RubyProf::Test

  By default, profiling results are written to the current
  processes working directory. To change this, or other
  profiling options, simply modify the PROFILE_OPTIONS hash
  table as needed.

* Used the new support for profiling test cases to revamp
  the way that Rails profiling works. For more information
  please refer to RubyProf's documentation.

* Keep track of call stack for each method to enable more
  powerful profile visualizations in Integrated Development
  Environments (Hin Boean, work supported by CodeGear).

* Expose measurements to Ruby (Jeremy Kemper).

* Add support for additional memory measurements modes in Ruby 1.9 (Jeremy Kemper).

* Add support for Lloyd Hilaiel's Ruby patch for measuring total heap size.
   See http://lloydforge.org/projects/ruby. (Jeremy Kemper).


Fixes
-------
* RubyProf.profile no longer crashes if an exception is
  thrown during a profiling run.

* Measure memory in fractional kilobytes rather than rounding down (Jeremy Kemper)


0.6.0 (2008-02-03)
========================

ruby-prof 0.6.0 adds support for Ruby 1.9 and memory profiling.

Features
--------
* Added support for ruby 1.9 (Shugo Maeda)
* Added support for outputting printer results to a String, Array or IO
  object (Michael Granger)
* Add new memory profiling mode. Note this mode depends on a
  patched Ruby interpreter (Alexander Dymo)

Fixes
-------
* Improvements to GraphHtmlPrinter including updated documentation,
  fixes for min_time support, ability to specify templates using
  strings or filenames, and table layout fixes (Makoto Kuwata)
* Fixes to scaling factor for calltrees so that precision is not lost
  due to the conversion to doubles (Sylvain Joyeux)
* Changed constant ALLOCATED_OBJECTS to ALLOCATIONS in the C code to
  match the Ruby code (Sylvain Joyeux)
* Added support for calltree printer to ruby-prof binary script (Sylvain Joyeux)
* Fix support for the allocator measure mode to extconf.rb (Sylvain Joyeux)
* Honor measure mode when specified on the command line (Sylvain Joyeux)
* Sorting of methods by total time was incorrect (Dan Fitch, Charlie Savage)
* Fix ruby-prof to work with the latest version of GEMS (Alexander Dymo)
* Always define MEASURE_CPU_TIME and MEASURE_ALLOCATIONS in Ruby code, but
  set their values to nil if the functionality is not available.


0.5.2 (2007-07-19)
========================

ruby-prof 0.5.2 is a bug fix release.

Fixes
-------
* Include missing rails plugin


0.5.1 (2007-07-18)
========================

ruby-prof 0.5.1 is a bug fix and performance release.

Performance
--------
* Significantly reduced the number of thread lookups by
  caching the last executed thread.

Fixes
-------
* Properly escape method names in HTML reports
* Fix use of -m and --min-percent command line switches
* Default source file information to ruby_runtime#0 for c calls
* Moved rails_plugin to top level so it is more obvious
* Updated rails_plugin to write reports to the current
  Rails log directory
* Added additional tests


0.5.0 (2007-07-09)
========================

Features
--------
* Added support for timing multi-threaded applications
* Added support for 64 bit systems (patch from Diego 'Flameeyes' Petten)
* Added suport for outputting data in the format used by
  KCacheGrind (patch from Carl Shimer)
* Add filename and line numbers to call tree information (patch from Carl Shimer)
* Added Visual Studio 2005 project file.
* Added replace-progname switch, als rcov.
* Added better support for recursive methods
* Added better support for profiling Rails applications

Fixes
-------
* Fixes bug when the type of an attached object (singleton) is inherited
  from T_OBJECT as opposed to being a T_OBJECT (identified by Francis Cianfrocca)
* ruby-prof now works in IRB.
* Fix sort order in reports.
* Fixed rdoc compile error.
* Fix tabs in erb template for graph html report on windows.

0.4.1 (2006-06-26)
========================

Features
--------
* Added a RubyProf.running? method to indicate whether a profile is in progress.
* Added tgz and zip archives to release

Fixes
-------
* Duplicate method names are now allowed
* The documentation has been updated to show the correct API usage is RubyProf.stop not RubyProf.end


0.4.0 (2006-06-16)
========================
Features
--------
* added support for call graphs
* added support for printers. Currently there is a FlatPrinter,
  GraphPrinter and GraphHtmlPrinter.
* added support for recursive methods
* added Windows support
* now packaged as a RubyGem

Fixes
-------
* Fixes bug where RubyProf would crash depending on the
  way it was invoked - for example, it did not run when
  used with Arachno Ruby's customized version of Ruby.
Something went wrong with that request. Please try again.