All Versions
Latest Version
Avg Release Cycle
101 days
Latest Release
520 days ago

Changelog History
Page 1

  • v1.4.1 Changes

    May 15, 2020
    • 🛠 Fix compiling on older versions of gcc that do not default to c99 (Charlie Savage)
  • v1.4.0 Changes

    May 13, 2020
    • 🔀 API change - remove merge_fibers support since it resulted in incorrect results or crashes (Charlie Savage)
    • 🛠 Fix crash when profiling memory usage (Charlie Savage)
    • 🖨 When tracing execution correctly print out newobj tracepoint events (Charlie Savage)
    • ✂ Remove no longer needed code for building extensions (Charlie Savage)
  • v1.3.2 Changes

    April 19, 2020
    • 🛠 Fix rack profiler so it is thread safe (Charlie Savage)
    • 🛠 Fix loading of prebuilt binaries on mingw64 to use Ruby's major and minor version (Charlie Savage)
  • v1.3.1 Changes

    March 11, 2020
    • Add max_percent and filter_by options to flat printer (Sean McGivern)
    • 🏗 Include binary in mingw64 build (Charlie Savage)
  • v1.3.0 Changes

    February 22, 2020
    • ⚡️ Update C code to use newer RTypedData API versus older RData API.
    • 🗄 Update C code to use rb_cObject versus the older, deprecated, rb_cData.
    • ⚡️ Update memory management - CallInfo's now keep alive their owning Profile instances. Fixes crashes that could happen in rare instances.
  • v1.2.0 Changes

    January 23, 2020
    • 🛠 Fix call stack printer broken in version 1.0.0 (Charlie Savage)
    • 💎 Ruby 2.7.0 support (Charlie Savage)
    • 🏁 Switch to Windows high precision timer for measuring wall time (Charlie Savage)
    • 💎 Much better support for reverse call trees - if you start RubyProf at the bottom of a call tree it will correctly calculate times as it ascends the tree (Charlie Savage)
    • 🐎 Port AggregateCallInfo from Ruby to C to increase performance
    • API change - CallInfo has been renamed CallTree
    • 🛠 Fix crashes on Ruby 2.4.*
  • v1.1.0 Changes

    October 17, 2019

    🔄 Changes

    • 🔀 Reimplement merge_fibers (Charlie Savage)
    • 🛠 Fix crash caused by threads being freed when profiles are freed (Charlie Savage)
  • v1.0.0 Changes

    July 29, 2019

    👀 ruby-prof's development stretches all the way back to 2005. Fourteen years later, it seems time for version 1.0! 🔖 Version 1.0 is a significant update that greatly improves the internals of ruby-prof and adds a number of improvements.

    🔄 Changes (Charlie Savage):

    • Profiling is significantly faster - 5x in some cases
    • Recursive profiles are finally handled correctly. Yeah!!!
    • Redesigned reports (Chirs Whitefield)
    • 🆕 New documentation website (
    • 💎 The ability to measure allocations and memory usage using a standard (unpatched) version of ruby
    • The ability to save and reload profiling results for later analysis
    • The ability track object allocations

    🚚 At the same time, it was also time to remove old code and deprecated methods. These changes include (Charlie Savage):

    • ⬇️ Drop support for old versions of ruby. Currently 2.4 and up are required.
    • ✂ Remove support for method elimination (instead use method exclusion).
    • Remove the CPU_TIME measurement mode since it duplicates the PROCESS_TIME mode and required inline assembly code
    • Remove the GC_TIME and GC_RUNS measurement modes since they required patched ruby versions. In modern ruby it is possible to reimplement this functionality, but it does not seem of that much value (shout out if you want it back).
    • 🔀 Merge the RubyProf::FlatPrinterWithLineNumbers printer into RubyProf::FlatPrinter.
    • Removed support for RUBY_PROF_EDITOR_URI environment variable that specified the link scheme. This features was more confusing then helpful.
  • v0.18.0 Changes

    May 27, 2019

    🛠 Fixes

    • 🛠 Fix grouping by thread/fiber (Charlie Savage)
    • 🛠 Fix include/exclude thread checking (Charlie Savage)
    • 🛠 Fix failing tests (Charlie Savage)
    • Fix grouping by thread_id and fiber_id (Charlie Savage)
    • ⚡️ Update Visual Studio solution to 2019 (Charlie Savage)
    • 🖨 Adjust AbstractPrinter#editor_uri so it's possible to disable uri (Maciek Dubiński)-
    • 🛠 Fix -X/--exclude-file option not working (John Lindgren)
    • Different directory for middleware output in readme (Aldric Giacomoni)
    • 🛠 Fixing spelling mistakes and typos (David Kennedy and Roger Pack)
    • ➕ Add "allow_exceptions" option to Profile (Ryan Duryea)
    • ⚡️ Update readme (Jan Piotrowski, Nathan Seither, victor-am)
    • ⚡️ Travis updates (Niocals Leger and Charlie Savage)
    • Fix NewRelic module detection in exclude_common_methods! (Ben Hughes)
  • v0.17.0 Changes

    December 17, 2017