NYTPROFHTML(1)        User Contributed Perl Documentation       NYTPROFHTML(1)



NAME
       nytprofhtml - Generate reports from Devel::NYTProf data

SYNOPSIS
       Typical usage:

        $ perl -d:NYTProf some_perl_app.pl
        $ nytprofhtml --open

       Options synopsis:

        $ nytprofhtml [-h] [-d] [-o <output directory>] [-f <input file>] [--open]

DESCRIPTION
       Devel::NYTProf is a powerful feature-rich perl source code profiler.
       See Devel::NYTProf for details.

       "nytprofhtml" generates a set of html reports from the data collected
       by Devel::NYTProf.

       The reports include dynamic runtime analysis wherein each line and each
       file is analyzed based on the performance of the other lines and files.
       As a result, you can quickly find the slowest module and the slowest
       line in a module.  Slowness is measured in three ways: total calls,
       total time and average time per call.

       Coloring is based on absolute deviations from the median.  See
       <http://en.wikipedia.org/wiki/Median_absolute_deviation> for more
       details.

       That might sound complicated, but in reality you can just run the
       command and enjoy your report!

COMMAND-LINE OPTIONS
       -f, --file <filename>
           Specifies the location of the file generated by Devel::NYTProf.
           Default: ./nytprof.out

       -o, --out <dir>
           The directory in which to place the generated report files.
           Default: ./nytprof/

       -d, --delete
           Purge any existing contents of the report output directory.

       -l, --lib <dir>
           Add a path to the beginning of @INC to help nytprofhtml find the
           source files used by the code. Should not be needed in practice.

       --open
           Make your web browser visit the report after it has been generated.

       -h, --help
           Print the help message

SAMPLE OUTPUT
       You can see a complete report for a large application (over 200 files
       and 2000 subroutines) at
       https://www.me.com/ix/tim.bunce/Public/perl/nytprof/nytprof-perlcritic-demo/index.html
       <https://www.me.com/ix/tim.bunce/Public/perl/nytprof/nytprof-
       perlcritic-demo/index.html>

       The report was generated by profiling perlcritic 1.106 checking it's
       own source code using perl 5.12.1.

DIAGNOSTICS
   "Unable to open '... (autosplit into ...)'"
       The profiled application executed code in a module that used AutoLoader
       to load the code from a separate .al file.  NYTProf automatically
       recognises this situation and tries to determine the 'parent' module
       file so it can associate the profile data with it.  In order to do that
       the parent module file must already be 'known' to NYTProf, typically by
       already having some code profiled.

       You're only likely to see this warning if you're using the "start"
       option to start profiling after compile-time. The effect is that times
       spent in autoloaded subs won't be associated with the parent module
       file and you won't get annotated reports for them.

       You can avoid this by using the default "start=begin" option, or by
       ensuring you execute some non-autoloaded code in the parent module,
       while the profiler is running, before an autoloaded sub is called.

HISTORY
       A bit of history and a shameless plug...

       NYTProf stands for 'New York Times Profiler'. Indeed, this module was
       initially developed from Devel::FastProf by The New York Times Co. to
       help our developers quickly identify bottlenecks in large Perl
       applications.  The NY Times loves Perl and we hope the community will
       benefit from our work as much as we have from theirs.

       Please visit <http://open.nytimes.com>, our open source blog to see
       what we are up to, <http://code.nytimes.com> to see some of our open
       projects and then check out <http://nytimes.com> for the latest news!

   Background
       Subroutine-level profilers:

         Devel::DProf        | 1995-10-31 | ILYAZ
         Devel::AutoProfiler | 2002-04-07 | GSLONDON
         Devel::Profiler     | 2002-05-20 | SAMTREGAR
         Devel::Profile      | 2003-04-13 | JAW
         Devel::DProfLB      | 2006-05-11 | JAW
         Devel::WxProf       | 2008-04-14 | MKUTTER

       Statement-level profilers:

         Devel::SmallProf    | 1997-07-30 | ASHTED
         Devel::FastProf     | 2005-09-20 | SALVA
         Devel::NYTProf      | 2008-03-04 | AKAPLAN
         Devel::Profit       | 2008-05-19 | LBROCARD

       Devel::NYTProf is a (now distant) fork of Devel::FastProf, which was
       itself an evolution of Devel::SmallProf.

       Adam Kaplan took Devel::FastProf and added html report generation
       (based on Devel::Cover) and a test suite - a tricky thing to do for a
       profiler.  Meanwhile Tim Bunce had been extending Devel::FastProf to
       add novel per-sub and per-block timing, plus subroutine caller
       tracking.

       When Devel::NYTProf was released Tim switched to working on
       Devel::NYTProf because the html report would be a good way to show the
       extra profile data, and the test suite made development much easier and
       safer.

       Then he went a little crazy and added a slew of new features, in
       addition to per-sub and per-block timing and subroutine caller
       tracking. These included the 'opcode interception' method of profiling,
       ultra-fast and robust inclusive subroutine timing, doubling
       performance, plus major changes to html reporting to display all the
       extra profile call and timing data in richly annotated and cross-linked
       reports.

       Steve Peters came on board along the way with patches for portability
       and to keep NYTProf working with the latest development perl versions.

       Adam's work is sponsored by The New York Times Co.
       <http://open.nytimes.com>.  Tim's work was partly sponsored by
       Shopzilla. <http://www.shopzilla.com>.

SEE ALSO
       Mailing list and discussion at
       http://groups.google.com/group/develnytprof-dev
       <http://groups.google.com/group/develnytprof-dev>

       Public SVN Repository and hacking instructions at
       http://code.google.com/p/perl-devel-nytprof/
       <http://code.google.com/p/perl-devel-nytprof/>

       Devel::NYTProf, Devel::NYTProf::Reader, nytprofcsv

AUTHOR
       Adam Kaplan, "<akaplan at nytimes.com>".  Tim Bunce,
       <http://www.tim.bunce.name> and <http://blog.timbunce.org>.  Steve
       Peters, "<steve at fisharerojo.org>".

COPYRIGHT AND LICENSE
       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself, either Perl version 5.8.8 or, at
       your option, any later version of Perl 5 you may have available.



perl v5.12.2                      2010-11-19                    NYTPROFHTML(1)
