From Joomla! Documentation

The "API15" namespace is an archived namespace. This page contains information for a Joomla! version which is no longer supported. It exists only as a historical reference, it will not be improved and its content may be incomplete and/or contain broken links.

JProfiler is a class for performance analysis of your code. It allows to trace:

  • execution time of a particular code part;
  • memory amount used by your script at a specific program point.

A JProfiler object allows you to make performance marks at specified parts of your script. It stores this marks in a buffer and provides operations for accessing it. Mark is a string with the following structure:

Application Start: 0.000 seconds, 0.10 MB
\_________/ \___/  \___________/  \_____/
     |        |          |           |
   prefix   label       time       memory


  • prefix -- serves as an identifier for distinct JProfiler objects (see below);
  • label -- the name of a performance mark;
  • time -- time from a JProfiler object creation to a mark setting;
  • memory -- memory allocated to your script in a moment when a performance mark is setting.

The JProfiler class provides getInstance method that we can call statically. It serves for organisation of a global access point for distinct JProfiler objects. It stores an array of created objects and gives access to them on the grounds of a prefix which can be provided as an argument. Also, if an object with demanded prefix is absent, then getInstance method will create it.

Defined in



Method name Description
__construct Constructor
getInstance Returns a reference to the global Profiler object, only creating it if it doesn't already exist.
mark Output a time mark
getmicrotime Get the current time.
getMemory Get information about current memory usage.
getBuffer Get all profiler marks.


jimport( 'joomla.error.profiler' );


Code Examples


$p = JProfiler::getInstance('Application');

$a = str_repeat("hello world!\n", 100000);


would output

    [0] => Application Start: 0.000 seconds, 0.10 MB
    [1] => Application Middle: 0.005 seconds, 1.34 MB
    [2] => Application Stop: 0.005 seconds, 0.10 MB

This example was originally contributed by User:Artyom.

Chris Davenport 13:22, 17 April 2011 (CDT) Edit comment