Download the PHP package sj-i/php-profiler without Composer

On this page you can find all versions of the php package sj-i/php-profiler. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package php-profiler

PHP (runner): 8.4.0+ PHP (target): 7.0+ Packagist Github Actions Scrutinizer Code Quality Coverage Status Psalm coverage

Reli is a sampling profiler (or a VM state inspector) written in PHP. It can read information about a running PHP script from outside the process. It's a standalone CLI tool, so target programs don't need any modifications.

Use it for call-trace sampling (where time is spent), memory-graph analysis (where memory is used), runtime variable inspection, and condition-triggered captures. For first-use, see documentation index.

Showcase

A taste of what reli looks like in use.

Sampling with a live hot-frames feed — inspector:trace + watch rbt:analyze

Capture to .rbt in one terminal while running rbt:analyze through watch(1) in another for a live-refreshing "top of the hot frames" view — the data streams in as samples are taken.

What you're looking at. reli is a sampling profiler — every ~10 ms it takes a snapshot of the target's PHP call stack. The top pane is what the target is running right now. The self / total tables below rank frames by how many accumulated snapshots they've appeared in: more appearances = more wall time spent there. Self is time directly in the frame; Total is time in the frame plus anything it called.

Compact enough to leave running. At default 10 ms sampling, an hour of trace is rarely more than a few MB of .rbt — capture now, analyse later.

Analyser reference: docs/tracing/rbt-analyze-and-explore.md

Interactive trace browsing — rbt:explore

Capture to .rbt, open the sandwich / flamegraph / tree TUI.

Full tour (keymap, filters, --with-opcode, mouse, live tail): docs/tracing/rbt-analyze-and-explore.md
.rbt format spec and converters (speedscope, pprof, callgrind, etc): docs/tracing/binary-trace-format.md
Advanced capture (opcodes / native frames / JIT): docs/tracing/advanced-capture.md

Memory graph visualization — rmem:viz / rmem:explore

Render the heap as a standalone HTML file — Circle Pack, Treemap, Sunburst, 3D Force — or serve it live with a shared focus bus that rmem:explore (TUI), browsers, and an MCP client all follow in sync.

What you're looking at. reli walks the target's PHP heap into a graph — every value (objects, arrays, strings, call frames…) is a node, every reference is an edge. rmem:viz renders that graph as a standalone HTML page; rmem:explore --http-bridge (or the standalone rmem:live) serves it over HTTP with a shared cursor that the terminal TUI, browser views, and an MCP client all follow at once. Useful for chasing memory leaks and finding which classes eat the most memory.

Full tour (views, palettes, focus bus, mouse, MCP): docs/memory/rmem-explore-and-serve.md

Automated memory findings — inspector:memory:report

Capture a snapshot and get a prioritised report back — dominant classes, cycles, choke points, deduplication candidates — each with severity, hypothesis, and next steps.

What you're looking at. reli scans the captured heap graph for known waste patterns — dominant classes, reference cycles, choke points, dedup candidates — and prints each finding with a severity, a hypothesis, and a next-investigation step.

You can also compare two snapshots to track regressions or verify fixes:

Full reference (output formats, thresholds, JSON mode): docs/memory/memory-report.md
Capture options (--exclude-heap, portable dumps): docs/memory/memory-dump.md
Core-file analysis (crashed / post-mortem): docs/memory/coredump.md

Troubleshooting

Common hitches (non-standard php binary name, -S for accuracy, Amazon Linux 2 memory maps, stale analysis cache): docs/troubleshooting.md.

How it works

Under the hood, reli:

This keeps target-side overhead low in our benchmarks: 1.00–1.06× baseline at typical sampling rates, with profiler CPU spent in the separate reli process. See docs/bench/RESULTS.md for the numbers.

Goals

We would like to achieve the following 5 goals through this project.

LICENSE

What does the name "Reli" mean?

Given its functionality, you might naturally think that the name stands for "Reverse Elephpantineer's Lovable Infrastructure". But unfortunately, it's not true.

"Reli" means nothing, though you are free to think of this tool as something reliable, religious, relishable, or whatever other reli-s you like.

Initially, the name of this tool was just "php-profiler". Due to a licensing problem (#175), this perfectly good name had to be changed.

So we applied a randomly chosen string manipulation function to the original name. strrev('php-profiler') results in 'reliforp-php', and it can be read as "reli for p(php)".

Thus, the name of this tool is "Reli for PH*" now. And you can also just call it "Reli".

See also


All versions of php-profiler with dependencies

PHP Build Version
Package Version
Requires php Version ^8.4
ext-ffi Version *
ext-filter Version *
ext-json Version *
ext-pcntl Version *
symfony/console Version ^8.0
php-di/php-di Version 7.1.1
amphp/parallel Version 2.3.3
amphp/amp Version 3.1.1
hassankhan/config Version 3.2.0
sj-i/php-cast Version 1.0.0
monolog/monolog Version 3.10.0
webmozart/assert Version 2.3.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package sj-i/php-profiler contains the following files

Loading the files please wait ...