Testing some singleton implementations

Stanislav Blinov stanislav.blinov at gmail.com
Fri Jan 31 03:10:10 PST 2014


On Friday, 31 January 2014 at 10:57:53 UTC, Andrej Mitrovic wrote:

> The atomic implementation probably beats the TLS version when a 
> lot of
> new threads are being spawned at once and they only retrieve the
> singleton which has already been initialized. E.g., say a 1000 
> threads
> are spawned.

Easy enough to test. But inconclusive. I just ran some tests with 
1024 threads :)

First, subsequent runs on my machine show interleaving results:

Test time for SyncSingleton: 61.2334 msecs.
Test time for AtomicSingleton: 15.9795 msecs.

Test time for SyncSingleton: 11.209 msecs.
Test time for AtomicSingleton: 25.4395 msecs.

Test time for SyncSingleton: 22.8105 msecs.
Test time for AtomicSingleton: 35.1865 msecs.

I guess I'd need a different CPU (and probably one that's not 
doing anything else at the time) to get conclusive results.

It also seems that either there *is* a race in there somewhere, 
or maybe a bug?.. Some runs just flat freeze (even on small 
thread counts) :\


More information about the Digitalmars-d mailing list