[concurrency-interest] synchronized vs Unsafe#monitorEnter/monitorExit

Remi Forax forax at univ-mlv.fr
Sat Dec 27 16:29:09 EST 2014


Not all the methods of Unsafe are fast, these are in Unsafe because 
well, they are unsafe.

Note that these 3 ones will be removed soon because nobody use them.

cheers,
Rémi

On 12/27/2014 09:31 PM, Ben Manes wrote:
> Can someone explain why using Unsafe's monitor methods are 
> substantially worse than synchronized? I had expected them to emit 
> equivalent monitorEnter/monitorExit instructions and have similar 
> performance.
>
> My use case is to support a bulk version of CHM#computeIfAbsent, where 
> a single mapping function returns the result for computing multiple 
> entries. I had hoped to bulk lock, insert the unfilled entries, 
> compute, populate, and bulk unlock. An overlapping write would be 
> blocked due to requiring an entry's lock for mutation. I had thought 
> that using Unsafe would allow for achieving this without the memory 
> overhead of a ReentrantLock/AQS per entry, since the synchronized 
> keyword is not flexible enough to provide this structure.
>
> Thanks,
> Ben
>
> Benchmark                                                    Mode 
>  Samples         Score         Error  Units
> c.g.b.c.SynchronizedBenchmark.monitor_contention            thrpt     
>   10   3694951.630 ±   34340.707  ops/s
> c.g.b.c.SynchronizedBenchmark.monitor_noContention          thrpt     
>   10   8274097.911 ±  164356.363  ops/s
> c.g.b.c.SynchronizedBenchmark.reentrantLock_contention      thrpt     
>   10  31668532.247 ±  740850.955  ops/s
> c.g.b.c.SynchronizedBenchmark.reentrantLock_noContention    thrpt     
>   10  41380163.703 ± 2270103.507  ops/s
> c.g.b.c.SynchronizedBenchmark.synchronized_contention       thrpt     
>   10  22905995.761 ±  117868.968  ops/s
> c.g.b.c.SynchronizedBenchmark.synchronized_noContention     thrpt     
>   10  44891601.915 ± 1458775.665  ops/s
>
>
>
> _______________________________________________
> Concurrency-interest mailing list
> Concurrency-interest at cs.oswego.edu
> http://cs.oswego.edu/mailman/listinfo/concurrency-interest

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cs.oswego.edu/pipermail/concurrency-interest/attachments/20141227/4a5c58aa/attachment-0001.html>


More information about the Concurrency-interest mailing list