From 7d693ea26f94b1c9ca3ab1f66a59341766781b5e Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Mon, 5 Aug 2024 00:57:07 +0300 Subject: [PATCH] include benchmarks, add contributing section --- README.md | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 724b7d9..55f928c 100644 --- a/README.md +++ b/README.md @@ -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.