Self-hosted service
phoronix-test-suite/phoronix-test-suite avatar
phoronix-test-suite/phoronix-test-suite

Phoronix Test Suite 10.8.6: A PHP-Based Benchmarking Framework That Runs Anywhere

The Phoronix Test Suite open-source, cross-platform automated testing/benchmarking software.

3,130 stars435 forksPHPGPL-3.0

At a glance

What is it?
The Phoronix Test Suite is a cross-platform, open-source benchmarking framework built on PHP and driven by XML and shell scripts. It automates test installation, execution, and reporting, with a central repository of over 600 test profiles, but its age and platform quirks demand careful verification.
Who is it for?
Adopt Phoronix Test Suite if you need a reproducible, scriptable benchmarking framework across Linux, BSD, macOS, or Windows, especially for regression testing tied to git-bisect or for sharing results via OpenBenchmarking.org. Avoid it if you require modern PHP 8.2+ support, non-Linux full functionality, or a lightweight tool without a heavy dependency chain.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 51 days ago.
What is it written in?
Mainly PHP, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 14, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What It Solves and Who It Targets

The Phoronix Test Suite addresses a specific pain: running benchmarks reproducibly across multiple operating systems without hand-writing a different script for each machine. It targets engineers who need automated test execution from installation to reporting, with results that can be compared side by side. The README positions it as the most comprehensive platform for Linux, Solaris, macOS, Windows, and BSD, but the emphasis is on Linux as the most full-featured and well-supported OS. The intended user is someone who manages fleets of systems, performs regression testing, or publishes benchmark results for public comparison. The framework is not a single benchmark; it is a harness that installs, runs, and reports tests defined as profiles and suites, with a central repository at OpenBenchmarking.org offering more than 600 individual test profiles and over 200 test suites by default.

Architecture: XML Profiles, Shell Scripts, and a PHP Core

The core mechanism is deceptively simple. A test profile is a single test, defined by a set of Bash or shell scripts and XML files. A test suite is a single XML file that collects multiple profiles or other suites. The PHP framework parses these definitions, handles the installation of dependencies, executes the scripts, and captures the output as a result. This design makes adding a new test a matter of writing an XML descriptor and a shell script, which is a low barrier for contribution. The framework also detects installed system software and hardware, feeding that context into results for comparison. Modules extend the core: the README specifically mentions integration with git-bisect and other revision control systems for per-commit regression testing, plus system sensor monitoring. That modularity is where the framework gains depth, allowing it to go beyond simple pass/fail benchmarks into qualitative measurements like image quality comparison.

Getting It Running: PHP CLI Is the Only Hard Dependency

Installation is refreshingly straightforward. The only hard dependency is command-line PHP, version 5.3 or later. You do not need a web server or a full PHP stack; just the CLI binary, which the README notes is available from package managers under names like php, php7-cli, php5-cli, or php8. You can install the suite system-wide or run it directly from an extracted tar.gz or zip archive, which makes it portable for temporary test environments. The basic workflow is three commands: phoronix-test-suite benchmark smallpt runs a simple CPU test end to end, phoronix-test-suite install <test or suite name> only installs, and phoronix-test-suite run <test or suite name> executes an already installed test. For non-interactive environments, there is a batch mode: run phoronix-test-suite batch-setup once, then use batch-run instead of run. You can also view system details with phoronix-test-suite system-info. To compare against a published result, you run phoronix-test-suite benchmark 1204293-BY-PHORONIX357, referencing a result file on OpenBenchmarking.org.

The Batch Mode and Result Sharing: A Concrete Workflow

Batch mode is the key feature for automation. The README shows that you first configure it with batch-setup, which likely prompts for default options like whether to upload results, then batch-run executes without further interaction. This is the path for CI pipelines or scheduled runs. Result sharing is built around OpenBenchmarking.org, a collaborative storage platform where users can upload results, profiles, and suites. The README gives an example of benchmarking a specific result identifier to compare against a known baseline. This is not just a storage dump; it enables side-by-side result comparisons and collaboration over test data. For enterprise use, Phoromatic is a complementary platform that manages multiple networked clients through a web interface, triggering runs on a timed or per-commit basis. That is a separate product, but it shows how the core suite scales from a single machine to a fleet.

Limitations: Non-Linux Gaps and an Aging Codebase

The documentation is honest about a significant limitation: while the suite supports Linux, BSD, Solaris, macOS, and Windows, the most full-featured and well-supported OS is Linux, and some non-basic functionality is not available under all platforms. That means a test profile that works on Linux may fail or behave differently on macOS or Windows, and the README does not specify which features are missing. Another constraint is architectural compatibility. The framework is compatible with major CPU architectures like i686, x86_64, ARM/AArch64, RISC-V, and POWER 64-bit, but not all test profiles are compatible with all architectures. You cannot assume a profile will run on a RISC-V board just because the framework installs. The last push was July 2022, and the latest release is 10.8.4, with the README referencing 10.8.6. That means the project is not actively developed, so you are adopting a mature but static codebase. The PHP 5.3+ requirement is a double-edged sword: it ensures compatibility with old systems, but it also means the code may not leverage modern PHP features or security fixes.

Wrong Tool Cases and a Real Alternative

This is the wrong tool if you need a single, self-contained benchmark that does not require a PHP runtime. The PHP dependency, while minimal, is still a requirement that some minimal container or embedded environments may not have. It is also the wrong tool if you need to run the same test suite identically across all supported OSes, because the README warns that non-Linux platforms are less supported. A real alternative with a different approach is the Unix Bench suite, which is a collection of C source files that compile directly into binaries, requiring no PHP or external framework. Unix Bench focuses on low-level system performance and is often used for quick, single-system evaluations. The key difference: Phoronix Test Suite abstracts test definitions into XML and scripts, enabling reproducible, shareable results across many systems, while Unix Bench is a fixed set of compiled tests with no built-in result sharing or automated installation. If you need a repeatable, collaborative benchmarking platform, Phoronix is the choice; if you need a simple, dependency-free performance check, Unix Bench is lighter.

Maintenance and Licensing: GPLv3 and a Stale Release Cycle

The project is licensed under GNU GPLv3, which means any derivative work must also be released under GPLv3. That is a consideration if you plan to embed the suite or modify it for proprietary use. The maintenance picture is mixed. The last push was July 2022, and the recent releases are 10.8.4, 10.8.3, and 10.8.2, with the README referencing 10.8.6. That indicates a slow but not dead release cycle, but there is no evidence of active development beyond that date. The documentation is extensive, with an included HTML/PDF manual and a documentation directory, which helps with long-term maintenance because you can understand the internals without relying on community support. However, the lack of recent commits means you are responsible for any fixes or compatibility updates for newer PHP versions or operating system changes. The only hard dependency is PHP CLI, which is a low maintenance burden, but the test profiles themselves may require external tools or libraries that are not listed in the README, so you should verify each profile's dependencies before relying on it.

Editorial conclusion

Adopt Phoronix Test Suite if you need a reproducible, scriptable benchmarking framework across Linux, BSD, macOS, or Windows, especially for regression testing tied to git-bisect or for sharing results via OpenBenchmarking.org. Avoid it if you require modern PHP 8.2+ support, non-Linux full functionality, or a lightweight tool without a heavy dependency chain. Before adopting, verify that your target test profiles install cleanly on your architecture, confirm the PHP CLI version meets the 5.3+ requirement, and test batch mode on a non-interactive CI environment, as the documentation warns that non-Linux platforms lack some non-basic features.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community notes

Community notes