drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/concurrent/ConcurrentUpdateLeftTupleBenchmark.java [70:131]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        kieBase = BuildtimeUtil.createKieBaseFromDrl(drlProvider.getDrl(rulesNr),
                                                     ParallelExecutionOption.SEQUENTIAL,
                                                     EventProcessingOption.CLOUD);
        //ReteDumper.dumpRete(kieBase);
    }

    @Setup(Level.Iteration)
    @Override
    public void setup() {
        for (int n = 0; n < SESSIONS_NR; n++) {
            StatefulKnowledgeSessionImpl session = (StatefulKnowledgeSessionImpl) RuntimeUtil.createKieSession(kieBase);
            A a = new A(rulesNr + 1);

            session.insert(a);

            for (int i = 0; i < factsNr; i++) {

                session.insert(new B(rulesNr + i + 3));
                if (joinsNr > 1) {
                    session.insert(new C(rulesNr + factsNr + i + 3));
                }
                if (joinsNr > 2) {
                    session.insert(new D(rulesNr + factsNr * 2 + i + 3));
                }
            }
            kieSessions.add(session);
        }
    }

    @TearDown(Level.Iteration)
    public void tearDoneIter() {
        for (int n = 0; n < SESSIONS_NR; n++) {
            kieSessions.get(n).dispose();
        }
        kieSessions.clear();
    }

    @Benchmark
    public int test() {
        ExecutorService executor = Executors.newFixedThreadPool(SESSIONS_NR);

        for (int n = 0; n < SESSIONS_NR; n++) {
            final int index = n;
            executor.execute(new Runnable() {

                public void run() {
                    int fired = kieSessions.get(index).fireAllRules();
//                    System.out.println(fired);
                }
            });
        }

        executor.shutdown();
        try {
            executor.awaitTermination(300, TimeUnit.SECONDS);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
        return kieSessions.size();
    }

    public static void main(String[] args) {
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/concurrent/ConcurrentUpdateRightTupleBenchmark.java [70:131]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        kieBase = BuildtimeUtil.createKieBaseFromDrl(drlProvider.getDrl(rulesNr),
                                                     ParallelExecutionOption.SEQUENTIAL,
                                                     EventProcessingOption.CLOUD);
        //ReteDumper.dumpRete(kieBase);
    }

    @Setup(Level.Iteration)
    @Override
    public void setup() {
        for (int n = 0; n < SESSIONS_NR; n++) {
            StatefulKnowledgeSessionImpl session = (StatefulKnowledgeSessionImpl) RuntimeUtil.createKieSession(kieBase);
            A a = new A(rulesNr + 1);

            session.insert(a);

            for (int i = 0; i < factsNr; i++) {

                session.insert(new B(rulesNr + i + 3));
                if (joinsNr > 1) {
                    session.insert(new C(rulesNr + factsNr + i + 3));
                }
                if (joinsNr > 2) {
                    session.insert(new D(rulesNr + factsNr * 2 + i + 3));
                }
            }
            kieSessions.add(session);
        }
    }

    @TearDown(Level.Iteration)
    public void tearDoneIter() {
        for (int n = 0; n < SESSIONS_NR; n++) {
            kieSessions.get(n).dispose();
        }
        kieSessions.clear();
    }

    @Benchmark
    public int test() {
        ExecutorService executor = Executors.newFixedThreadPool(SESSIONS_NR);

        for (int n = 0; n < SESSIONS_NR; n++) {
            final int index = n;
            executor.execute(new Runnable() {

                public void run() {
                    int fired = kieSessions.get(index).fireAllRules();
//                    System.out.println(fired);
                }
            });
        }

        executor.shutdown();
        try {
            executor.awaitTermination(300, TimeUnit.SECONDS);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
        return kieSessions.size();
    }

    public static void main(String[] args) {
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



