Linear Address Spaces: Unsafe at any speed
https://queue.acm.org/detail.cfm?id=3534854
#HackerNews #Linear #Address #Spaces #Unsafe #at #any #speed #ACM #Queue #Hacker #News #Technology
Linear Address Spaces: Unsafe at any speed
https://queue.acm.org/detail.cfm?id=3534854
#HackerNews #Linear #Address #Spaces #Unsafe #at #any #speed #ACM #Queue #Hacker #News #Technology
I now added a #lockfree version of that MPMC job queue which is picked when the system headers claim that pointers are lockfree. Doesn't give any measurable performance gain 😞. Of course the #semaphore needs to stay, the pool threads need something to wait on. But I think the reason I can't get more than 3000 requests per second with my #jmeter stress test for #swad is that the machine's CPU is now completely busy 🙈.
Need to look into actually saving CPU cycles for further optimizations I guess...
I now experimented with different ideas how to implement the #lockfree #queue for multiple producers and multiple consumers. Unsurprisingly, some ideas just didn't work. One deadlocked (okaaay ... so it wasn't lockfree) and I eventually gave up trying to understand why.
The "winner" so far is only "almost lockfree", but at least slightly improves performance. Throughput is the same as with the simple locked variant, but average response times are 10 to 20% quicker (although they deviate stronger for whatever reason). Well, that's committed for now:
https://github.com/Zirias/poser/commit/4f2f80a8266e4762e04ead2b802e7a7c1b55090b