# Audit benchmark result - explanation please

**URL:** <https://forum.autonomys.xyz/t/audit-benchmark-result-explanation-please/2149>\
**Category:** Support\
**Created:** [November 11, 2023, 12:11pm UTC](https://forum.autonomys.xyz/t/audit-benchmark-result-explanation-please/2149 "2023-11-11T12:11:09Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![nazar-pc](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.autonomys.xyz/nazar-pc/32/6_2.png) [@nazar-pc](https://forum.autonomys.xyz/u/nazar-pc)\
**Post date:** [November 11, 2023, 10:16pm UTC](https://forum.autonomys.xyz/t/audit-benchmark-result-explanation-please/2149/2 "2023-11-11T22:16:14Z")

</div>

> [@dragonP](#):
>
> What is difference between single and rayon? Why the benchmark run both?

Two implementation of auditing, there were more. We were using this to figure out how each behaves on different operating systems and drives to make sure we are using the fastest implementation by default on all platforms.

- `single` opens the file once and uses that for reading from multiple threads.
- `rayon` opens files as many times as there are farming threads and for each thread uses that dedicates file handle. [`rayon`](https://github.com/rayon-rs/rayon) is the library we use for multi-threading stuff.

On Linux both perform similarly with small edge to `rayon`, Windows is problematic and `rayon` is [MUCH faster there](https://github.com/subspace/subspace/pull/2151) (your machine is likely much faster than old-ish machine I used for benches there, so you see even bigger performance gap). This allowed us to get rid of memory-mapped I/O and get even better performance on Windows and get some speed-up on other OSs too.

`rayon` is currently the default, there might be other options added in the future.

> [@dragonP](#):
>
> What is the threshold to conclude the audit is too slow?

You should be able to audit well within 1s window because farmer receives a new challenge every second (1s is our slot time).

> [@dragonP](#):
>
> Can we calculate the max plot size based on the result below? How?

Generally you look at throughput and that will tell you how big should that SSD be for you to not be able to audit it quickly enough. Both CPU and disk performance impacts that, so if you add a second disk of the same size, the time will not necessarily increase 2x, it will likely have much less impact. It still gives you an idea about performance.

If you have high-end NVMe 4.0 or 5.0 SSD (or RAM disk) you can use this as an auditing CPU benchmark since SSD will no longer be your bottleneck.

For example this benchmark uncovered some [CPU-related performance bottlenecks](https://forum.autonomys.xyz/t/extreme-audit-algorithm-inefficiency-cpu-bound/2040) in the protocol and we have already improved auditing on the protocol level in Gemini 3g, 3g is more energy efficient than 3f in that sense and further research is ongoing, so there might be more improvements.

---

_[View the full topic](https://forum.autonomys.xyz/t/audit-benchmark-result-explanation-please/2149)._
