php-profiler
php-profiler copied to clipboard
cumulative counts are off
I'm running this within a php 8.1 alpine docker image and noticed that the cumulative counts are way off.

I'm using the Profiler::PROFILER_TIDEWAYS_XHPROF profiler.
$builtIns = (int) ($_GET['xhprof_builtins'] ?? 0);
$flags = [
ProfilingFlags::CPU,
ProfilingFlags::MEMORY,
ProfilingFlags::NO_SPANS,
ProfilingFlags::NO_BUILTINS
];
if ($builtIns === 1) {
unset($flags[3]);
}
$profiler = new \Xhgui\Profiler\Profiler([
'profiler' => Profiler::PROFILER_TIDEWAYS_XHPROF,
'profiler.enable' => function () {
$queryToken = $_ENV['XHPROF_QUERY_TOKEN'] ?? null;
$incomingToken = $_GET['xhprof'] ?? null;
return !empty($queryToken) && $incomingToken === $queryToken;
},
'profiler.flags' => $flags,
'save.handler' => \Xhgui\Profiler\Profiler::SAVER_UPLOAD,
'save.handler.upload' => array(
'url' => $_ENV['XHGUI_HOST'] . '/run/import',
'timeout' => 3,
'token' => $_ENV['XHGUI_UPLOAD_TOKEN'],
),
]);
https://github.com/perftools/php-profiler is just a helper to capture profiling data from the extension, encapsulate and send it to xhgui.
your problem is either in the profiler:
- https://github.com/tideways/php-xhprof-extension
or the GUI:
- https://github.com/perftools/xhgui
You should probably use the FILE saver to save data from the extension to json and check if the json is incorrect:
- https://github.com/perftools/php-profiler#file-saver