simple-disk-benchmark-rs
A simple disk benchmark tool.
Operating Systems
Currently, macOS and Linux are tested. Windows may work but is not tested. Development is on macOS.
Installation
Usage
Methodology
Specify the path to a file to use for benchmarking. If the file exists, it will be deleted. You can specify paths on other drives by using the full path to the file (e.g. /Volumes/MyDrive/testfile.dat
).
The benchmark tool will create a file of the specified size and then run the specified number of cycles. Each cycle will read or write the multiple blocks of a specified size to the file.
On macOS, the file is opened and F_NO_CACHE and F_GLOBAL_NOCACHE are both set on the file descriptor. This will bypass the file system cache and write directly to the disk. On Linux, the O_DIRECT flag is used to achieve the same result.
TODO
- Random seeks instead of just sequential.
- Multithreaded benchmarking option.
- Use random bytes instead of zeros for writes
- Test on Windows.
- Put on homebrew.
- More documentation.
- Run test coverage.
- Use a better ByteSize replacement.
- Borrow CPU time stuff from hyperfine.
- Better output
- Fuzz the StyleSheet code.
- Add a
--no-delete
option to keep the file around after the benchmark. - Output data to CSV/Json.
- Find out what's going on with all the dead_code false positives.
License
MIT License. See LICENSE file.