mirror of
https://github.com/maximebf/php-debugbar.git
synced 2025-07-24 02:01:30 +02:00
Group timeline
This commit is contained in:
@@ -73,15 +73,17 @@ class TimeDataCollector extends DataCollector implements Renderable
|
|||||||
* @param string $name Internal name, used to stop the measure
|
* @param string $name Internal name, used to stop the measure
|
||||||
* @param string|null $label Public name
|
* @param string|null $label Public name
|
||||||
* @param string|null $collector The source of the collector
|
* @param string|null $collector The source of the collector
|
||||||
|
* @param string|null $group The group for aggregates
|
||||||
*/
|
*/
|
||||||
public function startMeasure($name, $label = null, $collector = null)
|
public function startMeasure($name, $label = null, $collector = null, $group = null)
|
||||||
{
|
{
|
||||||
$start = microtime(true);
|
$start = microtime(true);
|
||||||
$this->startedMeasures[$name] = array(
|
$this->startedMeasures[$name] = array(
|
||||||
'label' => $label ?: $name,
|
'label' => $label ?: $name,
|
||||||
'start' => $start,
|
'start' => $start,
|
||||||
'memory' => $this->memoryMeasure ? memory_get_usage(false) : null,
|
'memory' => $this->memoryMeasure ? memory_get_usage(false) : null,
|
||||||
'collector' => $collector
|
'collector' => $collector,
|
||||||
|
'group' => $group,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -117,7 +119,8 @@ class TimeDataCollector extends DataCollector implements Renderable
|
|||||||
$this->startedMeasures[$name]['start'],
|
$this->startedMeasures[$name]['start'],
|
||||||
$end,
|
$end,
|
||||||
$params,
|
$params,
|
||||||
$this->startedMeasures[$name]['collector']
|
$this->startedMeasures[$name]['collector'],
|
||||||
|
$this->startedMeasures[$name]['group']
|
||||||
);
|
);
|
||||||
unset($this->startedMeasures[$name]);
|
unset($this->startedMeasures[$name]);
|
||||||
}
|
}
|
||||||
@@ -130,8 +133,9 @@ class TimeDataCollector extends DataCollector implements Renderable
|
|||||||
* @param float $end
|
* @param float $end
|
||||||
* @param array $params
|
* @param array $params
|
||||||
* @param string|null $collector
|
* @param string|null $collector
|
||||||
|
* @param string|null $group
|
||||||
*/
|
*/
|
||||||
public function addMeasure($label, $start, $end, $params = array(), $collector = null)
|
public function addMeasure($label, $start, $end, $params = array(), $collector = null, $group = null)
|
||||||
{
|
{
|
||||||
if (isset($params['memoryUsage'])) {
|
if (isset($params['memoryUsage'])) {
|
||||||
$memory = $this->memoryMeasure ? $params['memoryUsage'] : 0;
|
$memory = $this->memoryMeasure ? $params['memoryUsage'] : 0;
|
||||||
@@ -149,7 +153,8 @@ class TimeDataCollector extends DataCollector implements Renderable
|
|||||||
'memory' => $memory ?? 0,
|
'memory' => $memory ?? 0,
|
||||||
'memory_str' => $this->getDataFormatter()->formatBytes($memory ?? 0),
|
'memory_str' => $this->getDataFormatter()->formatBytes($memory ?? 0),
|
||||||
'params' => $params,
|
'params' => $params,
|
||||||
'collector' => $collector
|
'collector' => $collector,
|
||||||
|
'group' => $group,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -506,13 +506,15 @@ if (typeof(PhpDebugBar) == 'undefined') {
|
|||||||
|
|
||||||
for (var i = 0; i < data.measures.length; i++) {
|
for (var i = 0; i < data.measures.length; i++) {
|
||||||
var measure = data.measures[i];
|
var measure = data.measures[i];
|
||||||
|
var group = measure.group || measure.label;
|
||||||
|
|
||||||
if(!aggregate[measure.label])
|
if(!aggregate[group]) {
|
||||||
aggregate[measure.label] = { count: 0, duration: 0, memory : 0 };
|
aggregate[group] = { count: 0, duration: 0, memory : 0 };
|
||||||
|
}
|
||||||
|
|
||||||
aggregate[measure.label]['count'] += 1;
|
aggregate[group]['count'] += 1;
|
||||||
aggregate[measure.label]['duration'] += measure.duration;
|
aggregate[group]['duration'] += measure.duration;
|
||||||
aggregate[measure.label]['memory'] += (measure.memory || 0);
|
aggregate[group]['memory'] += (measure.memory || 0);
|
||||||
|
|
||||||
var m = $('<div />').addClass(csscls('measure')),
|
var m = $('<div />').addClass(csscls('measure')),
|
||||||
li = $('<li />'),
|
li = $('<li />'),
|
||||||
|
Reference in New Issue
Block a user