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

FreeBSD Manual Pages


home | help
Util::TimeTracker(3)  User Contributed Perl Documentation Util::TimeTracker(3)

       Log::Log4perl::Util::TimeTracker	- Track	time elapsed

	 use Log::Log4perl::Util::TimeTracker;

	 my $timer = Log::Log4perl::Util::TimeTracker->new();

	   # equivalent	to Time::HiRes::gettimeofday(),	regardless
	   # if	Time::HiRes is present or not.
	 my($seconds, $microseconds) = $timer->gettimeofday();

	   # reset internal timer

	   # return milliseconds since last reset
	 $msecs	= $timer->milliseconds();

	   # return milliseconds since last call
	 $msecs	= $timer->delta_milliseconds();

       This utility module helps tracking time elapsed for PatternLayout's
       date and	time placeholders. Its accuracy	depends	on the availability of
       the Time::HiRes module. If it's available, its granularity is
       milliseconds, if	not, seconds.

       The most	common use of this module is calling the gettimeofday()

	 my($seconds, $microseconds) = $timer->gettimeofday();

       It returns seconds and microseconds of the current epoch	time. If
       Time::HiRes is installed, it will simply	defer to its gettimeofday()
       function, if it's missing, time() will be called	instead	and
       $microseconds will always be 0.

       To measure time elapsed in milliseconds,	use the	reset()	method to
       reset the timer to the current time, followed by	one or more calls to
       the milliseconds() method:

	   # reset internal timer

	   # return milliseconds since last reset
	 $msecs	= $timer->milliseconds();

       On top of the time span between the last	reset and the current time,
       the module keeps	track of the time between calls	to

	 $msecs	= $timer->delta_milliseconds();

       On the first call, this will return the number of milliseconds since
       the last	reset(), on subsequent calls, it will return the time elapsed
       in milliseconds since the last call to delta_milliseconds() instead.
       Note that reset() also resets the time of the last call.

       The internal timer of this module gets its time input from the POSIX
       time() function,	or, if the Time::HiRes module is available, from its
       gettimeofday() function.	To figure out which one	it is, use

	   if( $timer->hires_available() ) {
	       print "Hooray, we get real milliseconds!\n";
	   } else {
	       print "Milliseconds are just bogus\n";

       For testing purposes, a different time source can be provided, so test
       suites can simulate time	passing	by without actually having to wait:

	 my $start_time	= time();

	 my $timer = Log::Log4perl::Util::TimeTracker->new(
		 time_function => sub {
		     return $start_time++;

       Every call to $timer->epoch() will then return a	time value that	is one
       second ahead of the value returned on the previous call.	This also
       means that every	call to	delta_milliseconds() will return a value that
       exceeds the value returned on the previous call by 1000.

       Copyright 2002-2013 by Mike Schilli <> and Kevin Goess

       This library is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

       Please contribute patches to the	project	on Github:

       Send bug	reports	or requests for	enhancements to	the authors via	our

       MAILING LIST (questions,	bug reports, suggestions/patches):

       Authors (please contact them via	the list above,	not directly): Mike
       Schilli <>, Kevin Goess	<>

       Contributors (in	alphabetical order): Ateeq Altaf, Cory Bennett,	Jens
       Berthold, Jeremy	Bopp, Hutton Davidson, Chris R.	Donnelly, Matisse
       Enzer, Hugh Esco, Anthony Foiani, James FitzGibbon, Carl	Franks,	Dennis
       Gregorovic, Andy	Grundman, Paul Harrington, Alexander Hartmaier	David
       Hull, Robert Jacobson, Jason Kohles, Jeff Macdonald, Markus Peter,
       Brett Rann, Peter Rabbitson, Erik Selberg, Aaron	Straup Cope, Lars
       Thegler,	David Viner, Mac Yang.

perl v5.32.1			  2020-07-22		  Util::TimeTracker(3)


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

home | help