cancel
Showing results for 
Search instead for 
Did you mean: 

Where i could find some performance info about Activiti5

totyumengr
Champ in-the-making
Champ in-the-making
Dear All,
We are ready to use Activiti5 replacing our existing workflow engine,
so i have a question that where i could find some performance information about it.

Our system's expected scale:
10000+ process instances per day
max 100 concurrent processes request per second

Thanks a lot.
11 REPLIES 11

mhw
Champ in-the-making
Champ in-the-making
Hi Ronald,

thank you for the tipps. Searching for looping is a good idea. I am continuing to learn.

Another interesting result:
Calling the same service node 1000 times works very fast and without notable memory increase:
int numOfExecutions = 1000;
  for (int i = 0; i < numOfExecutions; i++) {
   Map<String, Object> variables = new HashMap<String, Object>();
   variables.put("continue", false);

   ProcessInstance pi = runtimeService.startProcessInstanceByKey(
     "loopProcess", variables);
  }
 
The process:
<serviceTask id="javaServiceDoNothingLotOfTimes" name="Read voltage"
   activiti:class="com.bigcompany.wfe.activiti.delegate.ServiceDelegate">
   <extensionElements>
    <activiti:field name="serviceName">
     <activiti:string>DO_NOTHING_LOT_OF_TIMES</activiti:string>
    </activiti:field>
   </extensionElements>
  </serviceTask>

  <sequenceFlow sourceRef="javaServiceDoNothingLotOfTimes"
   targetRef="javaServiceDoNothingLotOfTimes">
   <conditionExpression>${!continue}</conditionExpression>
  </sequenceFlow>

  <sequenceFlow sourceRef="javaServiceDoNothingLotOfTimes"
   targetRef="endEvent">
   <conditionExpression>${continue}</conditionExpression>

  </sequenceFlow>

public void execute(DelegateExecution execution) throws Exception {
  String serviceNameString = "";

  } else if (serviceNameString.equals("DO_NOTHING_LOT_OF_TIMES")){
   if(counter < 100){
    counter++;
   } else {
    execution.setVariable("continue", true);
   }

At my PC it took 10s to execute, thats 10ms per loop (with each has 100 calls/decisions). I think this is very impressive and a hint to a very lean implementation.

@LeoCode, @krassib:
What have you found out? Any other results from your scenario?

Best regards,
Michael

ronald_van_kuij
Champ on-the-rise
Champ on-the-rise
At my PC it took 10s to execute, thats 10ms per loop (with each has 100 calls/decisions). I think this is very impressive and a hint to a very lean implementation.

It is, as can be read in the 'jBPM3/4' performance article. Would be nice though if some memory profiling would take place on more that a few service nodes after one another. To see what takes so relatively much memory