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

FreeBSD Manual Pages


home | help
NYTPROFHTML(1)	      User Contributed Perl Documentation	NYTPROFHTML(1)

       nytprofhtml - Generate reports from Devel::NYTProf data

       Typical usage:

	$ perl -d:NYTProf
	$ nytprofhtml --open

       Options synopsis:

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

       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
       <>	for more

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

       -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.

	   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

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

	   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.

       You can see a complete report for a large application at

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

   "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.

       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

       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

       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

       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.
       <>.  Tim's work was partly sponsored by
       Shopzilla. <>.

       Mailing list and	discussion at

       Public Github Repository	and hacking instructions at

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

       Adam Kaplan, "<akaplan at>".	 Tim Bunce,
       <> and <>.  Steve
       Peters, "<steve at>".

       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)


Want to link to this manual page? Use this URL:

home | help