digitalmars.D - Queue Performance, etc. (was "Thread Failed To Start")
- Adam Conner-Sax (22/22) Jan 03 2011 My streamlined version of the inter-thread queue tester is more reliable
My streamlined version of the inter-thread queue tester is more reliable (though it still freezes sometimes. I am trying to isolate it and will post if I do). But running the resulting comparison has led to some observations: 1. As I noted earlier, the lockfree linked-list based queues are the fastest by a large margin (over a synchronized array-based or linked-list based queue and message passing). 2. That gap closes some (to more like 2x or 3x faster) if the size of the messages increases, but the lockfree are still the fastest. 3. I love D. I was running on OSX, copied the files to my Windows machine and they compiled and ran fine. So awesome. 3a. My windows machine is, I think, 2 x 2.4 GHz Quad Core Xeon and my mac is 2 x 2.8 Quad Core GHz Xeon. The inter-thread queues run 2 or 3x faster on OSX. I will try linux boxes later this week. 3b. Are "systime()" and "Thread.sleep()" portable? The timing on the windows is weird. The sleep between packet sending seems too short and some of the timings seem way off. If that is a portability issue, I may revise 3a. 4. I tried receive vs. receiveOnly in the message passing (MP) version and it made no difference to the latency characteristics. 5. MP has a much larger minimum latency (avg of fastest 1% of packets around 8us vs 0 to 1 for the others). Adam
Jan 03 2011