public ProcessRuntimeMetrics getRuntimeMetrics(final List<ProcessIdentifier> identifiers) {
   final ProcessRuntimeMetrics totalMetrics = new ProcessRuntimeMetrics();
   long sumOfRuntimes = 0;
   long sumOfInstances = 0;
   for (final ProcessIdentifier identifier : identifiers) {
     final ProcessRuntimeMetrics procMetrics = getRuntimeMetrics(identifier);
     sumOfRuntimes += procMetrics.getMeanRuntime() * procMetrics.getNumberOfInstances();
     sumOfInstances += procMetrics.getNumberOfInstances();
     if ((totalMetrics.getMinRuntime() == 0)
         || (totalMetrics.getMinRuntime() > procMetrics.getMinRuntime())) {
       totalMetrics.setMinRuntime(procMetrics.getMinRuntime());
     }
     if ((totalMetrics.getMaxRuntime() == 0)
         || (totalMetrics.getMaxRuntime() < procMetrics.getMaxRuntime())) {
       totalMetrics.setMaxRuntime(procMetrics.getMaxRuntime());
     }
   }
   totalMetrics.setNumberOfInstances(sumOfInstances);
   if (sumOfInstances != 0) {
     totalMetrics.setMeanRuntime(sumOfRuntimes / sumOfInstances);
   } else {
     totalMetrics.setMeanRuntime(0);
   }
   return totalMetrics;
 }