include benchmarks, add contributing section

This commit is contained in:
raf 2024-08-05 00:57:07 +03:00
parent 72d3130aa0
commit 7d693ea26f
Signed by: NotAShelf
GPG key ID: AF26552424E53993

View file

@ -12,7 +12,7 @@ welcome to use it on your system: it's fast.
- Fast
- Really fast
- Minimal dependencies
- Actually very fast
- Actually really fast
- Cool NixOS logo (other, inferior, distros are not supported)
- Reliable detection of following info:
- Hostname/Username
@ -25,11 +25,45 @@ welcome to use it on your system: it's fast.
- Memory Usage/Total Memory
- Storage Usage/Total Storage (for `/` only)
- Shell Colors
- Did I mention fast?
## Benchmarks
Microfetch's performance is mostly hardware-dependant, however, the overall
trend seems to be < 2ms on any modern (2015 and after) CPU. Below are the
benchmarks with Hyperfine on my desktop system.
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
| :-------------------------- | --------: | -------: | -------: | -------: |
| `target/release/microfetch` | 1.3 ± 0.1 | 1.2 | 3.7 | 1.00 |
On an average configuration, this is roughly 25 times faster than fastfetch and
around 80 times faster than neofetch. Results, as stated above, may vary.
## Customizing
You can't.
### Why?
Customization, of any kind, is expensive: I could try reading environment
variables, parse command-line arguments or read a configuration file but all of
those increment execution time and resource consumption by a lot.
### Really?
To be fair, you _can_ customize Microfetch by... Well, patching it. It's not the
best way per se, but it will be the only way that does not compromise on speed.
## Contributing
I will, mostly, reject feature additions. This is not to say you should avoid
them altogether, as you might have a really good idea worth discussing but as a
general rule of thumb consider talking to me before creating a feature PR.
Contributions that help improve performance in specific areas of Microfetch are
welcome. Though, prepare to be bombarded with questions.
## License
Microfetch is licensed under [GPL3](LICENSE). See the license file for details.