0.11.0.rc1 (2012-03-24) ====================== * 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). * 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). * Split out tests for cpu_time, process_time and wall_time into separate files (Charlie Savage). * Dropped support for Ruby 1.8.4 and 1.8.6 - does anybody still use these? (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.