Persistence Rules | Client Performance Guide | Performance API
The Performance API provides methods to run benchmarks for different methods. The benchmark in a method is started with the PerformanceLog.methodStarted(Object object) method. To end the benchmark use the PerformanceLog.methodFinished(Object object, String name) method and to finally output the string use the PerformanceLog.print(); method.
Example:
Object perfLogTag = PerformanceLog.methodStarted(this);
// Coding
.
.
PerformanceLog.methodFinished(perfLogTag, "Performance trace for method myPackage.deleteEntry");
PerformanceLog.print();
To enable the performance tracing in the MI, you have to set the performance trace property to true. The properties are set in the <ME_Home>/settings/MobileEngine.config file.
Example:
MobileEngine.Trace.PerformanceLog.Enabled=true
You have to restart the MI so that the changes in the MobileEngine.config file take effect.
When the performance log is enabled, the <ME_Home>/log/performance.log file is created. Whenever your application calls the PerformanceLog calls, an entry in the <ME_Home>/log/performance.log file is generated. The <ME_Home>/log/performance.log file has following content:
# time=Thu Dec 11 09:43:31 CET 2003
#
#Line: total(netto) # delta( used) # class@name
#======================================================
0:
1:
2: 0( 0) # 48( 1741552) # 1(0) null@FileTransactionManager.register(EntityFactory)
3: 80( 80) # 169144( 1488584) # 0(0) persistenceexample3.PersistenceExample@init()
4:
5:
6: 0( 0) # 8136( 1414456) # 5(4) com.sap.ip.me.persist.newfileio.ObjectTable@search(.....
7: 0( 0) # 39640( 1470728) # 8(7) com.sap.ip.me.persist.newfileio.ObjectTable@sort values
8: 10( 10) # 48760( 1472976) # 7(6) com.sap.ip.me.persist.newfileio.ObjectTable@sort values by orders
9: 0( 0) # 112( 1475424) # 9(6) com.sap.ip.me.persist.newfileio.ObjectTable@get sorted values
10: 10( 0) # 60768( 1477680) # 6(4) com.sap.ip.me.persist.newfileio.ObjectTable@get(.....
11: 10( 0) # 83664( 1489872) # 4(3) com.sap.ip.me.persist.newfileio.ObjectTable@get(final Query query0)
12: 10( 0) # 86072( 1492208) # 3(2) null@FileTransactionManager.get(Query, TreeOptionType)
13: 30( 20) # -73656( 1506776) # 2(1) persistenceexample3.PersistenceExample@doHandleEvent:
14: 50( 50) # 393712( 1902768) # 10(1) persistenceexample3.PersistenceExample@/jsp/menu.jsp
15: 80( 0) # 350792( 1906416) # 1(0) persistenceexample3.PersistenceExample@doGet
16: 80( 0) # 357048( 1908600) # 0(0) persistenceexample3.PersistenceExample@service()
Decription of the columns:
| total | Time consumed in milliseconds. The calculated time includes the execution of all methods also displayed in the performance log file. |
| (netto) | Time consumed in milliseconds without the time consumed by the call of other methods. |
| delta | Memory consumption in Bytes that have been used (or released when i is a negative value) between the call of the PerformanceLog.methodStarted(Object object) method and the PerformanceLog.methodFinished(Object object, String name). |
| used | Actual memory in use, in Bytes. |
| class | Classes that have called the PerformanceLog. |
| name | String that has been passed on to the method PerformanceLog.methodFinished(Object object, String name). |