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);
             }