NAME Mojolicious::Plugin::LeakTracker - Helps you track down memory leaks in your code VERSION version 1.00 SYNOPSIS $app->plugin('leak_tracker', \%options); NAME Mojolicious::Plugin::LeakTracker - Helps you track down memory leaks and circular references in your Mojolicious app PLUGIN OPTIONS ignore_mode When this is set to a true value, modes are ignored. By default the plugin will not install it's hooks or set up the tracking environment if you are in production mode. Setting ignore_mode to a true value will make the plugin run in production mode regardless. loglevel Can be set to any valid log method name applicable to $app->log (e.g. debug to log using $app->log->debug). By default set to 'debug' for development mode, and 'info' for production mode. Here as a way to override the default behaviour. INTERPRETING THE RESULTS At the beginning of each transaction (the "after_build_tx" hook), an event handler is attached to the "request" and "finish" events that the transaction emits. Tracking of leaks is done between these two stages. If a transaction finishes, and there are still live objects present, this is reported in the app log. Each live object's class, package, file, and size are dumped, as well as a cycle report; the cycle report lists circular references. Note that this plugin is not a magic CSI bullet that will point you straight to the source of a leak, but it is a way to get a better idea of where to look and what may potentially be causing them. KNOWN ISSUES * This plugin was smacked together in a hurry, and has a lot of dead/loose/useless code floating around in it. * Cyclic references may be falsely reported for modules that implement their own cyclic-reference-busting logic for when they are destroyed; also things like caching, and lazy-loaded objects may cause a false report. AUTHOR Ben van Staveren "<madcat@cpan.org"> BUG REPORTING/CONTRIBUTING Please report any bugs or feature requests through the web interface at <https://github.com/benvanstaveren/Mojolicious-Plugin-LeakTracker/issues >. You can fork my Git repository at <https://github.com/benvanstaveren/Mojolicious-Plugin-LeakTracker/> if you want to make changes or supply me with patches. ACKNOWLEDGMENTS Based in part on Catalyst::Plugin::LeakTracker, with some additional beating to make it fit Mojolicious' request handling. AUTHOR Ben van Staveren <madcat@cpan.org> COPYRIGHT AND LICENSE This software is copyright (c) 2013 by Ben van Staveren. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.