# Yahoo! UI Library

### profiler 2.8.1

Yahoo! UI Library > profiler > YAHOO.tool.Profiler
Search:
Filters Show Private Show Protected Show Deprecated

## `static` Class YAHOO.tool.Profiler

Profiles functions in JavaScript.

### Methods

#### clear

`static Void clear ( name )`
Removes all report data from the profiler.

Parameters:
  `name <String>` (Optional) The name of the report to clear. If omitted, then all report data is cleared.

#### createReport

`private Void createReport ( name )`
Creates a report object with the given name.

Parameters:
  `name <String>` The name to store for the report object.

#### getAverage

`static float getAverage ( name )`
Returns the average amount of time (in milliseconds) that the function with the given name takes to execute.

Parameters:
  `name <String>` The name of the function whose data should be returned. If an object type method, it should be 'constructor.prototype.methodName'; a normal object method would just be 'object.methodName'.

Returns: `float`
  The average time it takes the function to execute.

#### getCallCount

`static int getCallCount ( name )`
Returns the number of times that the given function has been called.

Parameters:
  `name <String>` The name of the function whose data should be returned.

Returns: `int`
  The number of times the function was called.

#### getFullReport

`static Object getFullReport ( )`
Returns an object containing profiling data for all of the functions that were profiled. The object has an entry for each function and returns all information (min, max, average, calls, etc.) for each function.

Returns: `Object`
  An object containing all profile data.

#### getFunctionReport

`static Object getFunctionReport ( )`
Returns an object containing profiling data for a single function. The object has an entry for min, max, avg, calls, and points).

Returns: `Object`
  An object containing profile data for a given function.

Deprecated Use getReport() instead.

#### getMax

`static float getMax ( name )`
Returns the maximum amount of time (in milliseconds) that the function with the given name takes to execute.

Parameters:
  `name <String>` The name of the function whose data should be returned. If an object type method, it should be 'constructor.prototype.methodName'; a normal object method would just be 'object.methodName'.

Returns: `float`
  The maximum time it takes the function to execute.

#### getMin

`static float getMin ( name )`
Returns the minimum amount of time (in milliseconds) that the function with the given name takes to execute.

Parameters:
  `name <String>` The name of the function whose data should be returned. If an object type method, it should be 'constructor.prototype.methodName'; a normal object method would just be 'object.methodName'.

Returns: `float`
  The minimum time it takes the function to execute.

#### getOriginal

`static Function|Object getOriginal ( name )`
Returns the uninstrumented version of a function/object.

Parameters:
  `name <String>` The name of the function/object to retrieve.

Returns: `Function|Object`
  The uninstrumented version of a function/object.

#### getReport

`static Object getReport ( )`
Returns an object containing profiling data for a single function. The object has an entry for min, max, avg, calls, and points).

Returns: `Object`
  An object containing profile data for a given function.

#### instrument

`static Function instrument ( name , method )`
Instruments a method to have profiling calls.

Parameters:
  `name <String>` The name of the report for the function.
  `method <Function>` The function to instrument.

Returns: `Function`
  An instrumented version of the function.

#### pause

`static Void pause ( name )`
Pauses profiling information for a given name.

Parameters:
  `name <String>` The name of the data point.

#### registerConstructor

`static Void registerConstructor ( name , owner )`
Sets up a constructor for profiling, including all properties and methods on the prototype.

Parameters:
  `name <string>` The fully-qualified name of the function including namespace information.
  `owner <Object>` (Optional) The object that owns the function (namespace or containing object).

#### registerFunction

`static Void registerFunction ( name , owner , registerPrototype )`
Sets up a function for profiling. It essentially overwrites the function with one that has instrumentation data. This method also creates an entry for the function in the profile report. The original function is stored on the container object.

Parameters:
  `name <String>` The full name of the function including namespacing. This is the name of the function that is stored in the report.
  `owner <Object>` (Optional) The object that owns the function. If the function isn't global then this argument is required. This could be the namespace that the function belongs to, such as YAHOO.util.Dom, or the object on which it's a method.
  `registerPrototype <Boolean>` (Optional) Indicates that the prototype should also be instrumented. Setting to true has the same effect as calling registerConstructor().

#### registerObject

`static Void registerObject ( name , owner , recurse )`
Sets up an object for profiling. It takes the object and looks for functions. When a function is found, registerMethod() is called on it. If set to recrusive mode, it will also setup objects found inside of this object for profiling, using the same methodology.

Parameters:
  `name <String>` The name of the object to profile (shows up in report).
  `owner <Object>` (Optional) The object represented by the name.
  `recurse <Boolean>` (Optional) Determines if subobject methods are also profiled.

#### saveDataPoint

`private static Void saveDataPoint ( name , duration )`
Called when a method ends execution. Marks the start and end time of the method so it can calculate how long the function took to execute. Also updates min/max/avg calculations for the function.

Parameters:
  `name <String>` The name of the function to mark as stopped.
  `duration <int>` The number of milliseconds it took the function to execute.

#### start

`static Void start ( name )`
Start profiling information for a given name. The name cannot be the name of a registered function or object. This is used to start timing for a particular block of code rather than instrumenting the entire function.

Parameters:
  `name <String>` The name of the data point.

#### stop

`static Void stop ( name )`
Stops profiling information for a given name.

Parameters:
  `name <String>` The name of the data point.

#### unregisterFunction

`static Void unregisterFunction ( name )`
Removes a constructor function from profiling. Reverses the registerConstructor() method.

Parameters:
  `name <String>` The full name of the function including namespacing. This is the name of the function that is stored in the report.

#### unregisterObject

`static Void unregisterObject ( name , recurse )`
Unregisters an object for profiling. It takes the object and looks for functions. When a function is found, unregisterMethod() is called on it. If set to recrusive mode, it will also unregister objects found inside of this object, using the same methodology.

Parameters:
  `name <String>` The name of the object to unregister.
  `recurse <Boolean>` (Optional) Determines if subobject methods should also be unregistered.

Copyright © 2010 Yahoo! Inc. All rights reserved.