report();
The report method of the JadeProfiler class outputs profile statistics of times spent in JADE and external methods to the file specified in the fileName property. In JADE thin client mode, profiler output is always output to the workstation that is running the JADE logic; that is, to the application server.
The JadeProfiler class methodCount, reportActualTime, reportCacheStatistics, reportLoadTime, reportMethodSize, reportStatistics, and reportTotalTime properties enable you to tailor the number of methods that are profiled and the details that are reported.
If you do not specify the fileName property or it has a null value, the profile statistics are dynamically output to the JadeProfiler_<application‑name>_yyyyMMdd_hhmmss .log or .csv file in the path specified by the
Depending on the values of the reportActualTime, reportCacheStatistics, reportLoadTime, reportMethodSize, reportStatistics, and reportTotalTime properties, the report produced by this method can contain six sections, as follows.
The "methods in actual time order" table lists all methods that are called, in the order of the actual time spent in each method. This information contains:
The number of times that the method was called
The minimum, maximum, and average duration of each call (in milliseconds)
The percentage of the profiling time
When running the application in multiuser mode, the schema, class, and method names are followed by the method execution location if the method executes on the server node; for example, ErewhonInvestmentsViewSchema::Sale::loadData(server). No method location is output for methods executing locally.
Details are output for both nodes if a method executes both locally and on the server.
The "methods in total time order" table lists the methods that were called, in the order of the total elapsed time that was spent in each method. The time spent in methods called from each method is included in this table.
External method calls are not reported. The time spent in any external method called from a JADE method is included in the time reported for the calling (JADE) method.
When running the application in multiuser mode, the schema, class, and method names are followed by the method execution location if the method executes on the server node; for example, ErewhonInvestmentsViewSchema::Sale::loadData(server). No method location is output for methods executing locally. Details are output for both nodes if a method executes both locally and on the server.
The "methods in total load time order" table lists the method load times, in the order of time each method took to load. This table lists the total time taken to load the method, the number of times that it was loaded, the average load time (that is, total load time divided by the number of times that it was loaded), and the schema, class, and name of the method.
Use this table to monitor the frequency of method loads so that you can increase the interpreter method cache size if methods are frequently being loaded and exceeding the method cache, by using the
Methods already loaded in the cache before profiling started are not reported in this table. Use the clearMethodCache method to flush the cache.
The "methods only by size order" table lists the size (in bytes) of the method in cache and the schema, class, and name of the method. On JADE client nodes, the interpreter method cache holds the code for methods executed on that node. Use the
The "cache statistics" section of profile information contains the method cache limit and the total maximum size to which the method cache grew during the profiling session. The cache statistics include the number of methods that were discarded from the cache to make room for new methods during the profiler run. If there were discarded methods, the total size of the methods discarded is also listed.
If the method cache overflowed (that is, the cache size exceeds the maximum size specified and all methods in the cache were in use and could be discarded), a table lists the amount by which the cache limit was exceeded, in ascending order of ten percentage points (for example, 10%, 20%, 30%, and so on up to 100+%, in units of 10 percentage points), the size of the method cache at that level (that is, the cache limit plus the exceeded amount), and the number of times the cache was exceeded.
When a method is executed, the JADE interpreter must load the method code into cache for execution. If a method is called frequently, tuning the
The "system statistics" table lists the global system‑wide statistics for the duration of the profile session.
These values are those returned by the
As statistics values are accumulated by the server, they include all system activity that occurred while the profiler was active.
If the application is running in multiuser mode and other users are accessing that application or any other application (regardless of the profiling setting), the system statistics therefore include all user operations for all applications that were running for the duration of the profile activity.
The system statistics are listed in the following table.
Statistic | Example |
---|---|
Committed transactions | 64177 |
Aborted transactions | 20 |
Get objects | 201594 |
Queued locks | 3 |
Objects created | 532 |
Objects deleted | 449 |
Objects updated | 86609 |
Objects locked | 226709 |
Objects unlocked | 40647 |
Begin notifications | 271 |
End notifications | 183 |
Delivered notifications | 597 |
Server method executions | 3 |
When you call the report method and there is an existing profile file, records are appended to existing records, indicated by start and finish times.
Commands provided by the Jade User Interrupt Profiler submenu enable you to profile methods in an application that is currently running. For details, see Chapter 1, "