Skip to content

Commit

Permalink
update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
andersc committed Jan 6, 2023
1 parent c4e016b commit 29d4cc3
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,9 @@ FastQueue can be pictured as illustrated below:
`───────'
```

FastQueue is aiming to be fast. When it comes to measuring performance using templated code the compiler may optimize the final solution in ways where FastQueue might change its performance depending on code changes not related to the queue. If you're aiming for speed, it might be wise to benchmark FastQueue against other SPSC queues in your live implementation, match L1_CACHE (see below \*2) size to the executing CPU and tune the queue depth (see below \*1) to match the data flow avoiding for example hitting the limit too often.
FastQueue is aiming to be among the top performing SPSC queues. When it comes to measuring performance when using templated code the compiler may optimize the final solution in ways where the queue might change its performance depending on code changes not related to the queue. If you're aiming for speed, it might be wise to benchmark FastQueue against other SPSC queues in your live implementation, match L1_CACHE (see below \*2) size to the executing CPU and tune the queue depth (see below \*1) to match the data flow avoiding for example hitting the limit too often.

Various compilers, CPU's and Architectures will result in different reults.
For example in my tests [Rigtorps SPSC](https://github.com/rigtorp/SPSCQueue) queue is really fast on ARM64.

**Apple M1 Pro**
Expand All @@ -50,8 +51,7 @@ FastQueueASM pointer test ended.
FastQueueASM Transactions -> 9471164/s
```

However, on X64 platforms I don't see the same gain in my benchmarks. With that said Rigtorps queue is really the one to beat ;-) .

However, on X64 platforms I don't see the same gain in my benchmarks.

**AMD EPYC 7763 64-Core Processor**

Expand All @@ -70,6 +70,10 @@ FastQueueASM pointer test ended.
FastQueueASM Transactions -> 8856282/s
```

The fastest queue I've found is Deaod's solution part of FastQueueCompare.cpp. Test with your compiler on your architecture on your CPU to see the result.

## FastQueue Info

The queue is a header only template class and is implemented in a few lines of C++.

The code compiles on arm64 or x86_64 CPU's running Windows, MacOS or Linux OS.
Expand Down

0 comments on commit 29d4cc3

Please sign in to comment.