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
Getting started

Tags


Find what you came for

We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.