Wallogit.com
2017 © Pedro Peláez
Library for collecting and storing XHProf results for later use by XHGUI.
This is a small standalone module which you can use to collect and store XHProf performance data for later usage in XHGUI., (*2)
NOTE: This package is being phased out, in new installatons, use perftools/php-profiler package., (*3)
This project was originally forked from perftools/xhgui@133051f, which was after the tag 0.7.1., (*4)
This should ensure compatibility for most tags up to 0.7.1 (included)., (*5)
The only change that would break compatibility would be a schema change on the XHGUI side., (*6)
This table represents current known information about compatibility between this project and XHGUI data schema., (*7)
| XHGUI Collector version | XHGUI Version | Compatibility |
|---|---|---|
| 1.0.0 - 1.x | 0.2.0 - 0.9.0 | presumed compatible - no schema changes |
The simplest way to profile an application is to use external/header.php.
external/header.php is designed to be combined with PHP's
[auto_prepend_file][4] directive. You can enable auto_prepend_file system-wide
through php.ini. Alternatively, you can enable auto_prepend_file per virtual
host., (*8)
With apache this would look like:, (*9)
<VirtualHost *:80> php_admin_value auto_prepend_file "/Users/markstory/Sites/xhgui/external/header.php" DocumentRoot "/Users/markstory/Sites/awesome-thing/app/webroot/" ServerName site.localhost </VirtualHost>
With Nginx in fastcgi mode you could use:, (*10)
server {
listen 80;
server_name site.localhost;
root /Users/markstory/Sites/awesome-thing/app/webroot/;
fastcgi_param PHP_VALUE "auto_prepend_file=/Users/markstory/Sites/xhgui/external/header.php";
}
The simplest way to profile a CLI is to use external/header.php.
external/header.php is designed to be combined with PHP's
[auto_prepend_file][4] directive. You can enable auto_prepend_file system-wide
through php.ini. Alternatively, you can enable include the header.php at the
top of your script:, (*11)
<?php require '/path/to/xhgui/external/header.php'; // Rest of script.
You can alternatively use the -d flag when running php:, (*12)
php -d auto_prepend_file=/path/to/xhgui/external/header.php do_work.php
composer require perftools/xhgui-collector define('XHGUI_CONFIG_DIR', PATH_TO_OWN_CONFIG);
require_once PATH_TO_YOUR_VENDOR . '/perftools/xhgui-collector/external/header.php';
| env | description | example | default |
|---|---|---|---|
XHGUI_MONGO_URI |
the host and port to the mongo db | XHGUI_MONGO_URI=mongo:27017 |
127.0.0.1:27017 |
XHGUI_MONGO_DB |
the database name for the profiling data | XHGUI_MONGO_DB=xhprof |
xhprof |
XHGUI_PROFILING_RATIO |
the ratio of profiled requests |
XHGUI_PROFILING_RATIO=50 which profiles 50% of all requests |
XHGUI_PROFILING_RATIO=100 |
XHGUI_PROFILING |
if this env var is set with any value the profiling is enabled | XHGUI_PROFILING=enabled |
it is not set per default, so no profiling will be triggered |
For using the data collection classes you will need the following:, (*13)
alcaeus/mongo-php-adapter composer dependency. When in doubt, refer to XHGUI repository's composer.json or this
repository's composer.json suggests section., (*14)