// run all conjuncts (from - to) for ($i = $from; $i <= $to; $i++) { $conjunct = Conjunct::getConjunct('conj_' . $i); $startTimeStamp = microtime(true); // true means get as float instead of string $conjunct->evaluateConjunct(false); $endTimeStamp = microtime(true); $performanceArr[$conjunct->id] = array('id' => $conjunct->id, 'start' => round($startTimeStamp, 6), 'end' => round($endTimeStamp, 6), 'duration' => round($endTimeStamp - $startTimeStamp, 6), 'invariantRules' => implode(';', $conjunct->invRuleNames), 'signalRules' => implode(';', $conjunct->sigRuleNames)); } switch ($groupBy) { case 'conjuncts': $content = array_values($performanceArr); break; case 'rules': $ruleArr = array(); foreach (Rule::getAllRules() as $rule) { $duration = 0; $conjunctIds = array(); foreach ($rule->conjuncts as $conjunct) { $duration += $performanceArr[$conjunct->id]['duration']; $conjunctIds[] = $conjunct->id; } $ruleArr[] = array('ruleName' => $rule->id, 'duration' => $duration, 'conjuncts' => implode(';', $conjunctIds)); } $content = $ruleArr; break; case 'relations': $relArr = array(); $conjunctIds = array(); foreach (Relation::getAllRelations() as $relation) { $duration = 0;