Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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]	[-m] [-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 a single data	file
       generated by Devel::NYTProf. (If	your process forks you'll probably
       have multiple files. See	Devel::NYTProf and nytprofmerge.)

       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.

	   If this doesn't work	well for you, try installing the Browser::Open
	   module.

       -m, --minimal
	   Don't generate graphviz .dot	files or block/sub-level reports.

       --no-flame
	   Disable generation of the flamegraph	on the index page.  Also
	   disables calculation	of distinct call stacks	that are used to
	   produce the flamegraph.

       -h, --help
	   Print the help message.

SAMPLE OUTPUT
       You can see a complete report for a large application at
       <http://timbunce.github.io/devel-nytprof/sample-report/nytprof-20160319/index.html>

       The report was generated	by profiling perlcritic	1.121 checking its own
       source code using perl v5.18.2.

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.

   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>

       Public Github Repository	and hacking instructions at
       <https://github.com/timbunce/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.32.0			  2018-06-04			NYTPROFHTML(1)

NAME | SYNOPSIS | DESCRIPTION | COMMAND-LINE OPTIONS | SAMPLE OUTPUT | DIAGNOSTICS | SEE ALSO | AUTHOR | COPYRIGHT AND LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=nytprofhtml&sektion=1&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help