Sha256: 3decf3fd0ff46c86c3e051aebc27a81a3d3e81947588741fa00c2507ac7bce90

Contents?: true

Size: 1.81 KB

Versions: 4

Compression:

Stored size: 1.81 KB

Contents

= bloat_check

BloatCheck is yet another tool for debugging bloat and memory leaks in ruby
projects.  This one has the feature that you can wrap any bit of code with
a "BloatCheck" and it will log elapsed time, and memory & object growth.

Plus you can include it in any rails controller to log that same info per
request.

== Installation

Gemfile:
        gem 'bloat_check'

== Usage: Ruby Code

Put this line anywhere:

        BloatCheck.log("some label")

and it will write to the log the current time, process memory size, and 5 ruby
objects classes with most instances, prefixed with "BLOAT[pid]" and your label.

Wrap it around any existing code, such as

        BloatCheck.log("here's looking at you") do
            some_suspec_computation()
            and_more()
        end

And it will write to the log the deltas: elapsed time, change in memory
size, and 5 ruby object classes that had the largest increase in number of
instances.

== Usage: Rails Controllers

In a rails controller, you can do

        class MyController < ApplicationController
            include BloatCheck::WrapRequests

            # etc.
        end

and every request will log the deltas incurred during that request.

== Disabling (e.g., when running tests)

BloatCheck is slow (calls system 'ps', and runs through
ObjectSpace#each_object), so you might want to disable it in your unit
tests or integration tests.  Do that via:

        BloatCheck.disable = true

Put this, e.g. in your spec/spec_helper.rb file

== Choosing the logger

By default, BloatCheck logs to the Rails logger if Rails is defined, or to
STDOUT otherwise.  But you can specify your own logger using

        BloatCheck.logger = Logger.new(...)


== Versions

Has been tested on MRI 1.9.3 and Rails 3.2

== History

== Copyright

Released under the MIT License.  See LICENSE for details.

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
bloat_check-0.0.5 README.rdoc
bloat_check-0.0.4 README.rdoc
bloat_check-0.0.3 README.rdoc
bloat_check-0.0.2 README.rdoc