overwrite profiling methods to get a more accurate profiling

This commit is contained in:
2022-08-01 01:24:44 +02:00
parent 55e5c6941d
commit cef92d05b2
7 changed files with 123 additions and 39 deletions

View File

@ -16,9 +16,9 @@ declare(strict_types=1);
namespace D3\DebugBar\Application\Component;
use D3\DebugBar\Application\Models\Collectors\SmartyCollector;
use D3\DebugBar\Application\Models\TimeDataCollectorHandler;
use DebugBar\Bridge\DoctrineCollector;
use DebugBar\Bridge\MonologCollector;
use DebugBar\DataCollector\TimeDataCollector;
use DebugBar\DebugBarException;
use DebugBar\JavascriptRenderer;
use DebugBar\StandardDebugBar;
@ -26,7 +26,6 @@ use Doctrine\DBAL\Logging\DebugStack;
use OxidEsales\Eshop\Core\Controller\BaseController;
use OxidEsales\Eshop\Core\DatabaseProvider;
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
use OxidEsales\Eshop\Core\Exception\StandardException;
use OxidEsales\Eshop\Core\Registry;
use ReflectionClass;
use ReflectionException;
@ -34,9 +33,9 @@ use ReflectionException;
class DebugBarComponent extends BaseController
{
/** @var StandardDebugBar */
protected $debugBar;
public $debugBar;
/** @var JavascriptRenderer */
protected $debugBarRenderer;
public $debugBarRenderer;
/**
* Marking object as component
@ -137,22 +136,17 @@ class DebugBarComponent extends BaseController
$debugbar->addCollector($this->getSmartyCollector());
}
public function addTimelineMessures()
/**
* @return void
*/
public function addTimelineMessures(): void
{
/** @var TimeDataCollector $tCollector */
$tCollector = $this->debugBar['time'];
$collectors = $this->debugBar->getCollectors();
$collectors['time'] = TimeDataCollectorHandler::getInstance();
global $aStartTimes;
global $aProfileTimes;
global $executionCounts;
foreach ($aProfileTimes as $label => $recordedTime) {
for ($i = 0; $i < $executionCounts[$label]; $i++) {
$tCollector->addMeasure(
$label,
$aStartTimes[$label],
$aStartTimes[$label] + $aProfileTimes[$label] / $executionCounts[$label]
);
}
}
$reflection = new ReflectionClass($this->debugBar);
$property = $reflection->getProperty('collectors');
$property->setAccessible(true);
$property->setValue($this->debugBar, $collectors);
}
}