Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/andrewrk/poop
Performance Optimizer Observation Platform
https://github.com/andrewrk/poop
Last synced: 19 days ago
JSON representation
Performance Optimizer Observation Platform
- Host: GitHub
- URL: https://github.com/andrewrk/poop
- Owner: andrewrk
- License: mit
- Created: 2023-06-13T19:36:11.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-09-06T19:03:05.000Z (about 2 months ago)
- Last Synced: 2024-10-05T14:45:50.393Z (about 1 month ago)
- Language: Zig
- Size: 42 KB
- Stars: 940
- Watchers: 12
- Forks: 52
- Open Issues: 20
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- dynamic-analysis - poop
README
# Performance Optimizer Observation Platform
Stop flushing your performance down the drain.
## Overview
This command line tool uses Linux's `perf_event_open` functionality to compare the performance of multiple commands
with a colorful terminal user interface.![image](https://github.com/andrewrk/poop/assets/106511/6fc9d22b-f95b-46ce-8dc5-d5cecc77c226)
## Usage
```
Usage: poop [options] ...Compares the performance of the provided commands.
Options:
--duration (default: 5000) how long to repeatedly sample each command```
## Building from Source
Tested with [Zig](https://ziglang.org/) `0.11.0-dev.3883+7166407d8`.
```
zig build
```## Comparison with Hyperfine
Poop (so far) is brand new, whereas
[Hyperfine](https://github.com/sharkdp/hyperfine) is a mature project with more
configuration options and generally more polish.However, poop does report peak memory usage as well as 5 other hardware
counters, which I personally find useful when doing performance testing. Hey,
maybe it will inspire the Hyperfine maintainers to add the extra data points!Poop does not support running the commands in a shell. This has the upside of
not including shell spawning noise in the data points collected, and the
downside of not supporting strings inside the commands. Hyperfine by default
runs the commands in a shell, with command line options to disable this.Poop treats the first command as a reference and the subsequent ones relative
to it, giving the user the choice of the meaning of the coloring of the deltas.
Hyperfine by default prints the wall-clock-fastest command first, with a command
line option to select a different reference command explicitly.While Hyperfine is cross-platform, Poop is Linux-only.