Simple to use and extremely powerful.
Works precisely as advertised.
If you need to scratch the "this is taking way too long..." itch, then this is the module for you.
(If you need to profile even after die/SIGINT/etc, see 'sigexit=1')
It helped to quickly discover the bottlenecks and reduce the runtime from 3 weeks to 8 hours with a few small changes.
Incredible! NYTProf is one of the best perl-modules and I think that source code availability can be more useful for newbies (like me :) ) if they try to learn module implementation. Great Job!
This module blows me away every time I use it.
Yet another excellent CPAN module that has become a standard tool for me. And remember this statement comes from a guy that is against micro-optimization and thinks that adding print statements is a debugger. In general by using Devel::NYTProf you get a clear view of where your application spends all its time. In practice I noticed that my web application spent more time on custom string encoder than with database queries. With a few changes the time was dropped from 428Âµs/call to 11Âµs/call and I can notice that in the application response times. Thanks to Devel::NYTProf I now understand what is slow in Perl (calling substr) and what is fast (a hash lookup). But as with any profiler if you are not into all the technical stuff this module is not for you.
my discovery of this module this afternoon was roughly equivalent to the discovery of controlled fire. it is almost 3 am and i am still quite awake planning where my app will go thanks to the information contained in the html report from just one hour of profiling. i had written a primitive profiling system myself but Devel::NYTProf ate its breakfast, lunch, and dinner. these are paradigmatic revelations. i am in awe of the potential of this tool's output to control the minds of management personnel who want to know how to squeeze every last cycle out of their existing hardware.
it is only once every few years that i find software that truly nails usefulness and usability simultaneously.
one word of caution: this profiler needs a clean shutdown of the perl interpreter to work its magic. don't kill your app unless it handles the signal and exits cleanly or you'll have to try again with your tail between your legs like i did.
Hands down, far and away the best performance profiler I have ever used, for *any* language!
Version 4.04 even traces code within string eval, which to me is nothing short of amazing. Using it with Perl 5.10.1+ adds even more capabilities, due to new magick within the perl VM.
The HTML output is even highly useful as a general code browser!
@Nigel - your assessment is 100% incorrect. NYTProf, by default, profiles *all* the Perl 5 code that your application uses. If you are having difficulty, ask someone for assistance.
Far too easy to waste too much time shaving extra milliseconds from your run-times once you get your hands on this module...........
It's helped me immensely when I've had to fix my software to run acceptably quickly. In the most recent case it highlighted a bug where I was effectively, and wholly unintentionally, recalculating the same data over and over.
It's always nice to reduce a 10 minute run-time to under 10 seconds.
Really easy to use, and the HTML output is awesome.
What can I say - the best profiler ever. I've used profilers in other languages as well as perl, and nothing makes finding hotspots as painless and as much fun as Devel::NYTProf
Why aren't you using it already?
Devel::NYTProf is an absolute life-saver. Finally, a decent profiler for Perl code. I used it to profile File::Find::Object, and never looked back at Devel::DProf or the rest of its half-baked ilk.
If you're using something else, then make sure you check out NYTProf.
Don't bother with other perl profilers, this is THE one. Very easy to collect profile statistics and generate connected HTML pages showing so much detail of where time is spent you will be amazed. In particular, I find the ability to locate time consuming subs, find where they were called from, see which of the callers contributed the most time and walk back up the stack very useful.
Profiling was so tedious and time consuming before and Devel::NYTProf makes is a lot easier. Thank you Adam and Tim.
I needed a bit more profiling information than Devel-Dprof offered and having read good reports about Devel-NYTProf, I gave it a try. Now I'm wondering why I never tried it sooner!
The documentation is clear, and easy to follow. Nice to have a bit of historical background in there too, to understand why the distribution was created in th first place.
The use of the HTML output, with links to statement lines, etc between pages is inspired. It has made tracing bottlenecks so much easier. It's even helped to highlight areas of code that although not bottlenecks now, are worth investigating. It allows the user to decide what's important to follow up, and not restrict them to just the slowest module/call as per Devel-DProf.
Many thanks to the guys for putting in the effort to make this distribution possible, and for making it Open Source :)
Tried this today to find a slowdown in some code, and was amazed by the detailed but easy-to-use output.
An excellent tool!
v2 and v2.02 show Devel::NYTProf continuing to improve: easy to use, outstandingly presented HTML reports, works with mod_perl.
This module rapidly became an indispensible part of my devel toolkit, and each new release brings some new feature that has you wondering how you managed without it.
Perl has long suffered from lacking a decent profiler... not anymore. :)
A profiler that not only gives you very decent default output at all caller levels, but also doesn't segfault whenever your perl loads Math::BigInt!
For the first time, a Perl profiler which is easy to use, and whose results are easy to understand! (And it works with mod_perl, flawlessly).
++ to the authors
4 hidden unhelpful reviews