Run.php in XHProf 8
File
src/XHProfLib/Run.php
View source
<?php
namespace Drupal\xhprof\XHProfLib;
use Drupal\xhprof\XHProfLib\Symbol\Symbol;
class Run {
private $run_id;
private $namespace;
private $symbols = [];
private $mainSymbol;
public function __construct($run_id, $namespace, $data) {
$this->run_id = $run_id;
$this->namespace = $namespace;
$this->symbols = $this
->parseSymbols($data);
}
public function getId() {
return $this->run_id;
}
public function getKeys() {
return array_keys($this->symbols);
}
public function getMetrics($key) {
return $this->symbols[$key];
}
public function getSymbols() {
return $this->symbols;
}
public function getMainSymbol() {
return $this->mainSymbol;
}
public function __toString() {
return "Run id {$this->run_id}";
}
private function parseSymbols($data) {
$symbols = [];
foreach ($data as $parent_child => $metrics) {
if (!isset($metrics['cpu'])) {
$metrics['cpu'] = NULL;
}
if (!isset($metrics['mu'])) {
$metrics['mu'] = NULL;
}
if (!isset($metrics['pmu'])) {
$metrics['pmu'] = NULL;
}
$symbol = new Symbol($parent_child, $metrics['ct'], $metrics['wt'], $metrics['cpu'], $metrics['mu'], $metrics['pmu']);
$symbols[$parent_child] = $symbol;
if ($symbol
->getParent() == NULL) {
$this->mainSymbol = $symbol;
}
}
return $symbols;
}
}
Classes
Name |
Description |
Run |
Provides value object for a profiler run. |