Profiling options for profiling an application in stand-alone mode
In stand-alone mode, profiling options are specified in a file. The following describes the file format and the valid profiling options that can be used in the file.
Comments can be made in the profile options file by using *. For example, the line
* This is a comment in the profile file
will be ignored by the profiler when processing the file.
All other lines in the file follow this format:<option_key> = <option_value>The following table lists the profiling valid option key-option value pairs:
Option key Option value
- MONITOR_MODE
- This option controls whether monitor events appear in the trace. Monitor events are of two kinds: monitor contended events, and monitor wait events. Monitor contended events occur when a thread tries acquiring a monitor that is already acquired by another thread. Monitor wait events occur when a thread waits on a monitor (eg. by executing the wait() method).
- all
- All monitor events will appear in the trace.
- none
- No monitor events will appear in the trace
- FILTERS
- Used to specify whether the used filters are printed out at the beginning of the trace.
- true
- Print out the filters at the beginning of the trace.
- false
- Do not print out the filters at the beginning of the trace.
- TRACK_GC_EVENT_TYPES
- Used to indicate what type of garbage collection (GC) events should be printed to the trace. The two types of GC events are object free events and object move events.
- none
- Do not print out any GC events.
- deletes
- frees
- Print out only object free events
- moves
- Print out only object move events
- deletesAndMoves
- movesAndFrees
- Print out both object frees and object moves.
- ID_STYLE
- Used to specify the types of object Id's that are printed. The possible types are Static Id and Relocatable Id. A Static Id is essentially a one-time id assigned to an object in the trace the first time it is seen. Furthermore, the id doesn't change during the duration of execution (even if the jvm moves the object internally). Static id's are the type that are typically used by the profiler.
A Relocatable Id is the id the the JVM associates with the objects and can change during execution (if, for example, during garbage collection, an object move event occurs).
- static
- Print only Static Ids
- relocatable
- Print only Relocatable Ids
- staticAndRelocatable
- Print both Static and Relocatable Ids
- OPTIONS
- Used to specify whether the profiling options should be printed to the trace.
- true
- Print the profiling options to the trace.
- false
- Do not print the profiling options to the trace.
- TIMESTAMPS
- Used to specify whether timestamps should be printed in the trace.
- true
- Print timestamps
- false
- Do not print timestamps
- METHOD_COUNTS
- Used to specify whether the method counts should be printed at the end of the trace.
- true
- For the methods that were traced, print a total of the number of times they were called at the end of the trace just before JVM shutdown.
- false
- Do not print method counts.
- OBJ_ALLOC_IS_ARRAY
- Used to specify whether to print out the isArray attribute for object allocations. (i.e., when an object is allocated, it is either an array or it is not; the isArray attribute contains that information.)
- true
- Print the isArray attribute.
- false
- Do not print the isArray attribute.
- STACK_INFORMATION
- This option is used to specify what type of method tracing should be done.
- none
- Do not do any method tracing. This is the equivalent of NOT selecting Execution Time Analysis in the Profile configuration window in the workbench.
- normal
- Trace all non-filtered methods.
- boundary
- Trace all non-filtered methods PLUS all boundary methods. This is the equivalent of having Profile Configuration > Execution Time Analysis > Collect boundary classes excluded by the filter set selected in the workbench.
- contiguous
- Trace all non-filtered methods PLUS all filtered methods that occur on the method invocation stack that are between two non-filtered methods. For example, suppose methodA calls methodB, which calls methodC, which in turn calls methodD. Further suppose methodA and methodD are not filtered, but methodB and methodC are. Since methodB and methodC are between two non-filtered methods, they also get traced.
- boundaryAndContiguous
- Same behaviour as having both the contiguous and boundary option values set for STACK_INFORMATION.
- BOUNDARY_DEPTH
- Used to specify the boundary tracing depth when the STACK_INFORMATION=boundary or boundaryAndContiguous.
- Integer
- Integer value specifying the boundary tracing depth.
- TICKET
- Used to specify whether the ticket attribute should appear in the trace.
- true
- Ticket attribute should appear in the trace.
- false
- Ticket attribute should not appear in the trace.
- TRACE_MODE
- Used to specify the tracing mode. Basically the tracing mode specifies whether object (heap) information is kept track of or not. (The 'none' value has special meaning.)
- full
- Trace all possible object information. That is, trace object allocations and trace the objects that are associated with method invocations (if STACK_INFORMATION is set to do method tracing).
- none
- Do not do any tracing whatsoever. (If this value is set, then the STACK_INFORMATION option gets overridden even if it is set to trace method invocations.)
- noObjectCorrelation
- Do not trace object information. This is different from the 'none' value in that method invocation tracing can still take place (if STACK_INFORMATION is appropriately set), but the objects associated with method invocations won't be kept track of, nor will any object allocation information be kept track of.
- TRACE_ID_REFS
- Used to specify whether to print out the trace id reference attribute. The trace reference id is an identifier that is unique to the trace.
- true
- Print out the trace id reference attribute.
- false
- Do not print out the trace id reference attribute.
Related tasks
Profiling an application
Profiling an application in standalone modeRelated references
Limitations when profiling an application on AS/400