Skip to main content

The only benchmark tool on the block crazy enough to abuse the UNIX yes command to test your CPU

Project description

yesBenchMark

PyPI version Python versions License Downloads GitHub downloads

yesBenchMark is a crazy tool for benchmarking the CPU in UNIX & UNIX-like systems. It abuses the yes command to load the CPU and measures CPU utilization, speed, and compute.

yesBenchMark demo (animated)

Features

  • Extremely tiny & light
  • Can run on extremely old hardware (OS X 10.4 Tiger is oldest it can run on of all the stuff out there, with a modest G3)
  • Can do a ton of different modes, varying in load from light to extremely punishing to see how far you can push your CPU:
    • time - See how much the CPU can output in 30 & 60 seconds respectively in a single thread (yes)
    • multicore - Multi-core version of the time benchmark
    • freq - Bench how fast your CPU core can turbo
    • multi-freq - Multi-core version of freq benchmark
    • stress - See how little of the total CPU a single thread can use, also includes a stability measurement
    • compute - Check how long it takes the CPU to compute 27,000,000,000 hunks of data (each hunk is a single y\n)
    • compute-xt - compute benchmark but with 10x the hunks
  • Written in Python & extremely portable, so runs almost anywhere
  • Probably one of the most practical benchmarks out there - measures CPU load, CPU frequency, and other things encouuntered in day-to-day workloads; none of the shenanigans that most tools use to grade your CPU's performance

Usage

Usage: yesbenchmark [options]
Options:
  --help, -h          Show this help message
  --mode=MODE         Run specific mode of benchmark

Modes:
all                   Run all modes of benchmarks
time                  Run time-bound benchmark
multicore             Run time-bound benchmark for all cores
freq                  Run frequency-bound benchmark
multi-freq            Run multi-core version of frequency-bound benchmark
stress                Run stress/utilization benchmark
compute               Run compute benchmark (time taken depends on CPU speed)
compute-xt            Run a more extreme version of compute benchmark

Well that is...all the capabilities of the program. We recommend the compute mode for most people.

Scores for reference (performance is compute & extreme is compute-xt):

M1 Max with 8 P-cores & 2 E-cores (10 cores total):

  • P70,363 → performance mode
  • X685 → extreme mode

i7-2600 with 8 cores:

  • P55,609 → performance mode
  • X557 → extreme mode

G5 with 1 core:

  • P572 → performance mode
  • {untested} → extreme mode (would take forever on my iMac G5 and overheat it)

Note: Do NOT run the program with zero arguments unless you want to run ALL benchmarks except the compute-xt one. This will take a long time and likely overheat your computer.

Installation

Requirements:

  • Python 3.8 or later (we don't test for older, probably works down to 3.6)
  • OS X 10.5 Leopard or later (if too old to be supported by Homebrew, please use Tigerbrew to install Python 3.10) or Linux 3.2 or later (BSDs may be supported at a later time when I have time to spin up one in a virtual machine)

To install yesBenchMark via pip:

pip install yesbenchmark

Or if you have cloned the repo for development (note that this will also allow you to edit the src code without re-installing for ease):

pip install -e .

Compiling and installing as a binary

Requirements:

  • The above requirements
  • If macOS, an Intel x86_64 CPU or better
  • MacOSX 10.9 or later if on Mac

To compile:

python3 compile.py

After that, just copy the binary in dist out and into a directory in your PATH.

License

This project is licensed under the GNU General Public License v3.0 (GPLv3). Please note that it will also be compatible with any future versions of this license, should they be released. All past and future versions of this software are covered by this license. See the LICENSE file for full details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yesbenchmark-1.0.0.tar.gz (23.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

yesbenchmark-1.0.0-py3-none-any.whl (24.2 kB view details)

Uploaded Python 3

File details

Details for the file yesbenchmark-1.0.0.tar.gz.

File metadata

  • Download URL: yesbenchmark-1.0.0.tar.gz
  • Upload date:
  • Size: 23.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for yesbenchmark-1.0.0.tar.gz
Algorithm Hash digest
SHA256 b834cff9c5a40e1d76c10018e1119ba4326400bf2bbd56a49dbabbc27b0b8947
MD5 fb1dc4780ffd7909312a05a10347b58e
BLAKE2b-256 fb444714b11e6fb8b4ba33b743b33c34f31e06a5c3f4ef2ebaf4f7e732845a8b

See more details on using hashes here.

File details

Details for the file yesbenchmark-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: yesbenchmark-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 24.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for yesbenchmark-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6f17ed4f3fd5d5e49a3dc4be31cf6fa141a342a0c991d8429fd864f600b959d6
MD5 cd9284d39f8202d4dbc133e2fa028b8d
BLAKE2b-256 590741cd8ce8dc80ec09419a6c2207a9eefa21b52c639ae53cd03c1fba43eb2c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page