Skip to content
 
 

Repository files navigation

CI Docs License

Amphimixis Logo

Amphimixis

Amphimixis is an automated project intelligence and evaluation tool for performance and migration readiness. It helps inspect a project for existing infrastructure such as CI, tests, benchmarks, dependencies, and build scripts, then runs builds and collects performance data for further comparison.

Amphimixis simplifies migration readiness exploration and performance analysis by partially implementing our methodology.

Amphimixis uses perf for profiling and can generate a cross‑table comparing two builds per CPU event.

Performance cross-table example

The cross-table below was generated by running Amphimixis on a YAML project, comparing builds on RISC‑V and x86.

Cross-table example

What does a cross-table contain? The cross-table displays gathered performance counter profiles (by CPU events for each function) of the two builds for performance comparison.

Why are there zeros in the cross‑table?
The two builds were executed on different architectures: 1_1_1 on RISC‑V and 2_2_2 on x86. Perf events like cache‑misses have different naming conventions or are not available on RISC‑V. That is why the first build shows zeros for those metrics, while the second build records actual numbers. The delta column highlights only the differences that appear in both builds, making it easy to spot architecture‑specific behaviour.

Requirements

  • Python 3.12 or later
  • Linux
  • rsync on each machine, sshpass on the machine that connects to remote hosts with passwords
  • perf and perf archive on each run_machine
  • Target project must support CMake as the build system and Make or Ninja as the low-level runner

Installation commands for system dependencies are available in Troubleshooting → System Dependencies.

Quick start

If you want to try Amphimixis right away, create a virtual environment, install the package from GitHub, and run the full pipeline on a target project:

python3 -m venv .venv
source .venv/bin/activate
pip install git+https://github.com/ebzych/amphimixis.git@stable
amixis init local
amixis run /path/to/project --config local.yml

Documentation

Project structure

The repository is organized around a small CLI and several core modules:

How To Help

Contributions are welcome. Before submitting a pull request, make sure local checks pass:

ci/runner.sh

See CONTRIBUTING.md for details on bug reports, pull request guidelines, and test categories.

License

The project is distributed under the MIT License. This project includes dependencies under various licenses — see NOTICE.md and the third_party_licenses/ directory for details.

About

An automated project intelligence and evaluation tool for performance and migration readiness.

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages