Example #1
0
 // 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;