Ejemplo n.º 1
0
 public function testGetDuration()
 {
     $profile = new Apishka_Templater_Profiler_Profile();
     usleep(1);
     $profile->leave();
     $this->assertTrue($profile->getDuration() > 0, sprintf('Expected duration > 0, got: %f', $profile->getDuration()));
 }
Ejemplo n.º 2
0
 private function dumpProfile($edge, Apishka_Templater_Profiler_Profile $profile, &$data)
 {
     if (isset($data[$edge])) {
         $data[$edge]['ct'] += 1;
         $data[$edge]['wt'] += floor($profile->getDuration() * 1000000);
         $data[$edge]['mu'] += $profile->getMemoryUsage();
         $data[$edge]['pmu'] += $profile->getPeakMemoryUsage();
     } else {
         $data[$edge] = array('ct' => 1, 'wt' => floor($profile->getDuration() * 1000000), 'mu' => $profile->getMemoryUsage(), 'pmu' => $profile->getPeakMemoryUsage());
     }
 }
Ejemplo n.º 3
0
 private function dumpProfile(Apishka_Templater_Profiler_Profile $profile, $prefix = '', $sibling = false)
 {
     if ($profile->isRoot()) {
         $this->root = $profile->getDuration();
         $start = $profile->getName();
     } else {
         if ($profile->isTemplate()) {
             $start = $this->formatTemplate($profile, $prefix);
         } else {
             $start = $this->formatNonTemplate($profile, $prefix);
         }
         $prefix .= $sibling ? '│ ' : '  ';
     }
     $percent = $this->root ? $profile->getDuration() / $this->root * 100 : 0;
     if ($profile->getDuration() * 1000 < 1) {
         $str = $start . "\n";
     } else {
         $str = sprintf("%s %s\n", $start, $this->formatTime($profile, $percent));
     }
     $nCount = count($profile->getProfiles());
     foreach ($profile as $i => $p) {
         $str .= $this->dumpProfile($p, $prefix, $i + 1 !== $nCount);
     }
     return $str;
 }
Ejemplo n.º 4
0
 protected function formatTime(Apishka_Templater_Profiler_Profile $profile, $percent)
 {
     return sprintf('<span style="color: %s">%.2fms/%.0f%%</span>', $percent > 20 ? self::$colors['big'] : 'auto', $profile->getDuration() * 1000, $percent);
 }