Average profiling is a profiling tool for RXML applications. The tool
counts calls to tags and modules and accumulates the time spent on each
call. The registrated data can later be viewed with a web based
user interface.
To enable avarage profiling the webserver has to be started with the
-DAVERAGE_PROFILING flag. If the flag is given, profiling will be
enabled and an extra module in the administration interface will be
loaded. The extra module, Average Profiling, provides some task
buttons and a web based interface for the profiling data.
New profiling data will be stored in the webserver's memory until the
Dump to database button is pressed. Then the data will be stored in
an SQL database. Every click on the dump button will create a new session.
Average Profiling Module
The settings tab have these options:
- Location
-
The mount point for the user interface.
- Database
-
The database to store and read information from.
The information tab has some tasks buttons, they are:
- Clear database
-
Clear the entire database table.
- Dump to database
-
Save new profiling information to a database in
a new session.
- Clear profiling information
-
Clear new profiling information from
memory.
User Interface
The user interface is reached by clicking on the link on the modules
information page.
The interface consists of two parts; the selection and the result part.
The selection part is used to select what log entries to list in the
result part. The following selections are available:
- Session
-
Select events for a special session. Each time the dump to database
button is pressed a new session will be created.
- Configuration
-
Select events for a specific virtual server.
- File Glob
-
List only those files that matches this glob pattern.
- Event Class
-
Select events with a specific event class.
- Event Name
-
Select events with a specific event name. This select box can contain
lots of entries. If the event class is selected first, only the
event names in that class will be listed.
- Sort by
-
Select what column to sort by.
- Direction
-
Select the sort direction.
- Group by
-
Select what column to group by. It is possible to group by file, event
class and event name. Grouping is a technique to combine entries with
common values on the group by column. Numerical columns are accumulated
and textual columns are hidden.
An event is something that has been timed, for example to generate the
result from a tag. An event belongs to an event class, for example the
event gtext belongs to the class tag. The event classes and their
content is listed below:
Event Class | Generated From | Example Event Name |
directory
|
Directory Modules
|
Directory Listings
|
emit
|
Emit Plugins
|
dir
|
entity
|
RXML Entities
|
dir.title
|
ext
|
Extension Modules
|
Scripting: Pike script support
|
filter
|
Filter Modules
|
Tags: Javascript Support
|
location
|
Location Modules
|
SiteBuilder: Content Editor
|
overhead
|
Various overhead
|
rxml
|
tag
|
Tag Modules
|
gtext
|
The result part of the user interface consists of a table containing the
matched entries. A description of each column is given below:
- Session
-
The session.
- Configuration
-
The virtual server name.
- File
-
The file the event occured in.
- Event Class
-
The event class.
- Event Name
-
The event name.
- Calls
-
The number of calls to the event.
- Real (ms)
-
The total real time in milliseconds for the calls.
- Av. Real (ms)
-
The average real time in milliseconds for each call.
- CPU (ms)
-
The total CPU time in milliseconds for the calls.
- Av. CPU (ms)
-
The average CPU time in milliseconds for each call.