0.2.0 • Published 6 years ago
xhprof-analyzer v0.2.0
XHProf Analyzer
This is a simple tool to help analyze the output of PHP profiling extension xhprof.
Installation
npm install xhprof-analyzer -gUsage
In PHP file, add following code at the beginning.
<?php
tideways_xhprof_enable();
$startTime = microtime(true);
register_shutdown_function(function() use ($startTime) {
file_put_contents(
'/var/log/php-profile.log',
json_encode([
'data' => tideways_xhprof_disable(),
'totalTime' => microtime(true) - $startTime,
'request' => $_SERVER['REQUEST_URI']
]) . PHP_EOL,
FILE_APPEND
);
});and then run this CLI from shell:
xhprof-analyze --top-avg-time-path-list /var/log/php-profile.logFor more details list, see
xhprof-analyze --help.
Custom List
Use following command:
xhprof-analyze --list "type:<LIST-TYPE>;name:<LIST-TITLE>;columns:<COLUMNS>;sort:<SORT-BY>;rows:<MAX-ROWS>' <FILE-NAME>For each variables,
<LIST-TYPE>is the type of list, only following type is supported:pathrequest
<LIST-TITLE>Optional. is the displayed title of list. (don't include";"). Default:Custom List #N<COLUMNS>Optional. is the columns to be displayed in the list, could be combination of following items:indexThe line No. of row in the list.countThe requested/called count of requests/paths.count%The percentage ofcountin all requests.timeThe average time of path calling or requesting.time%The percentage oftimein all requests.avg-timeThe average time of path calling or requesting.avg-callThe average calls of the path in each request involved the path.max-timeThe maximum time of the path in all requests involved the path.min-timeThe minimum time of the path in all requests involved the path.max-callThe maximum calls of the path in all requests involved the path.min-callThe minimum calls of the path in all requests involved the path.call-coverageHow many kinds of requests involved the call.called-requestsHow many requests involved the call.pathThe called path or request path.
<SORT-BY>Optional. The sorting columns, could be combination of any columns in<COLUMNS>exceptingindexandpath. Default:time.<MAX-ROWS>Optional. The maximum rows of list output. Default: 100.
Requirements
- Node.js v8.x (Or newer)
- TypeScript v3.1.x (Or newer)
License
This library is published under Apache-2.0 license.