Hi,
I have created very basic cache configuration for jbpm 4.3 in jbpm.hibernate.cfg.xml, as follows:
<property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.use_query_cache">true</property>
<class-cache \class="org.jbpm.pvm.internal.repository.DeploymentImpl" usage="nonstrict-read-write"/>
<class-cache \class="org.jbpm.pvm.internal.repository.DeploymentProperty" usage="nonstrict-read-write"/>
<class-cache \class="org.jbpm.pvm.internal.id.PropertyImpl" usage="nonstrict-read-write"/>
<class-cache \class="org.jbpm.pvm.internal.model.ExecutionImpl" usage="nonstrict-read-write"/>
<class-cache \class="org.jbpm.pvm.internal.job.JobImpl" usage="nonstrict-read-write"/>
<class-cache \class="org.jbpm.pvm.internal.task.TaskImpl" usage="nonstrict-read-write"/>
<class-cache \class="org.jbpm.pvm.internal.task.ParticipationImpl" usage="nonstrict-read-write"/>
<class-cache \class="org.jbpm.pvm.internal.task.SwimlaneImpl" usage="nonstrict-read-write"/>
<class-cache \class="org.jbpm.pvm.internal.identity.impl.UserImpl" usage="nonstrict-read-write"/>
<class-cache \class="org.jbpm.pvm.internal.identity.impl.MembershipImpl" usage="nonstrict-read-write"/>
<class-cache \class="org.jbpm.pvm.internal.identity.impl.GroupImpl" usage="nonstrict-read-write"/>
P.S. Please remove \ from class attribute.
By doing that execution of 50 process instances took about 150 - 200 ms less than without it.
Perhaps you could give it a try on your test to see if that makes any difference.
Cheers
Maciej