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