in drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/turtle/runtime/SubNetworkBenchmark.java [75:104]
public int benchmark() {
ksession = kieBase.newKieSession();
List<Integer> list = new ArrayList<>();
ksession.setGlobal("list", list);
List<Map<Long, FactHandle>> handles = new ArrayList<>();
for (List<Node> nodeList : nodes) {
Map<Long, FactHandle> handlesMap = new HashMap<>(nodeList.size());
for (int j = 0; j < nodeList.size(); j++) {
InternalFactHandle handle = (InternalFactHandle) ksession.insert(nodeList.get(j));
handlesMap.put(handle.getId(), handle);
}
handles.add(handlesMap);
}
List<List<Long>> ids = new ArrayList<>();
for (int i = 0; i < handles.size(); i++) {
List<Long> idList = new ArrayList<>(handles.get(i).keySet());
Collections.shuffle(idList, new Random(0));
ids.add(idList);
}
ksession.fireAllRules();
int[] segmentsToVisit = new int[] {0, 1, 2};
iterate(segmentsToVisit, list, handles, ids);
return list.size();
}