Profiling
The code below uses YourKit's controll classes to create a snapshot.
public void testProfilePluginScripts() throws Exception {
String docString = "<DR_ShortCreateIntervalRecords><factId>219250542869</factId><longDescr>REEE</longDescr></DR_ShortCreateIntervalRecords>";
Document doc = DocumentHelper.parseText(docString);
// warmups
for (int i = 0; i < 5; i++) {
BusinessObjectDispatcher.execute(doc, BusinessObjectActionLookup.constants.FAST_UPDATE);
rollbackAndContinue();
}
Controller controller = new Controller();
controller.forceGC();
controller.startCPUProfiling(ProfilingModes.CPU_SAMPLING, Controller.DEFAULT_FILTERS);
for (int i = 0; i < 500; i++) {
BusinessObjectDispatcher.execute(doc, BusinessObjectActionLookup.constants.FAST_UPDATE);
rollbackAndContinue();
}
controller.captureSnapshot(ProfilingModes.SNAPSHOT_WITHOUT_HEAP);
}