https://github.com/pmatos/quantum
Quantum is a racket application to do application performance benchmarking
https://github.com/pmatos/quantum
benchmarking performance racket
Last synced: 2 months ago
JSON representation
Quantum is a racket application to do application performance benchmarking
- Host: GitHub
- URL: https://github.com/pmatos/quantum
- Owner: pmatos
- License: gpl-3.0
- Created: 2019-08-16T09:36:31.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-01-08T14:27:45.000Z (over 4 years ago)
- Last Synced: 2025-01-09T23:25:42.131Z (4 months ago)
- Topics: benchmarking, performance, racket
- Language: Racket
- Size: 74.2 KB
- Stars: 1
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Quantum
Low-level Application Performance and Memory Tracker## Introduction
I needed an utility to allow me to measure the maximum memory allocation during the execution of an application.
This is it, it will give you the maximum memory size used by an application, plot it if needed and generate a JSON file with the data.## Usage
As a usage example, lets say we want to compare the memory usage by racket initialization using versions 6.12, 7.1, 7.3 and 7.4CS (chosen because they have reasonable differences both in time and in memory requirements).
We can run each of them separately using
```
$ ./quantum measure -j racket74cs.json -i 1 /home/pmatos/installs/racket-7.4_cs/bin/racket -e '(exit)'
Running command line /home/pmatos/installs/racket-7.4_cs/bin/racket -e (exit)
Page size for your system is 4096 bytes
Tracking process 25897
Process finished (in 443.0ms), gathered 192 records (once every 2.31ms)
Maximum virtual memory used: 437.35Mb
```Run once for each version, gather the json and then do:
```
$ ./quantum compare --output racket-exit.png Racket6.12:racket612.json Racket7.1:racket71.json Racket7.3:racket73.json RacketCS7.4:racket74cs.json
Comparing:
Racket6.12: racket612.json
Racket7.1: racket71.json
Racket7.3: racket73.json
RacketCS7.4: racket74cs.json
Output: racket-exit.png
```The file `racket-exit.png` will look similar to the following (if not, consider reporting an issue):

## Disclaimer
This software is in its infancy, its results might be correct, off-by-one, off-by-many or totally wrong. I am dog-fooding this on a daily basis but cross-referencing with other tools. At least for my current experiments, the results match what I expect and what other tools report but then again, it might all be a big coincidence. :)