Skip to content
Grzegorz Rajchman edited this page Mar 9, 2026 · 4 revisions

Performance tests in tripod include a profiler, so if they fail, you can see what's being slow.

We use PHP Profiler package that supports a number of different profiler extensions.

Once you run tests, the results are saved to a JSON-lines file ./profiler/xhgui.data.jsonl.

This file can be then imported to a GUI where it can be inspected, for example: https://github.com/perftools/xhgui

Setup XHGUI

git clone https://github.com/perftools/xhgui.git
cd xhgui
docker compose up -d

Now GUI is available at http://xhgui.127.0.0.1.nip.io:8142/ or http://localhost:8142/.

Import profiling data to XHGUI

The XHGUI repo includes ./external/import.php script to import the data from a JSON-lines file:

php external/import.php -f <file_path>

In the Docker Compose setup this can be done as:

docker compose run --rm -v "${DEVELOPMENT_WORK_DIR}/tripod-php:/tripod-php" xhgui php external/import.php -f /tripod-php/profiler/xhgui.data.jsonl

Importing profiling data from CircleCI artifact

From the CircleCI job, Artifacts tab, download xhgui.data.jsonl under profiler.

Then run import:

docker compose run --rm -v "$HOME/Downloads:/profiler" xhgui php external/import.php -f /profiler/xhgui.data.txt

Clone this wiki locally