scalaz/scalaz — pull request #622 by plokhotnyuk (2014-01-08 20:55:12+00:00)
Title: Improvement of actor API and implementation + new Strategy implementation for actors + minor code clean up for concurrency tests

Proposed changes:
- decreasing size (down to 64 bytes for 64-bit JVM with -XX:+UseCompressedOops option) & creation time (~50%) of actor instance by removing redundant fields
- improving throughput & decreasing number of memory fences by removing atomic ops with removed suspended flag and tail fields
- improving throughput of actor rescheduling in executor service by adding strategy which optimized for actors
- decreasing default number of messages that handled in batch and adding batch param to change that number

Here are benchmark results for proposed and current implementation accordingly:
https://github.com/plokhotnyuk/actors/blob/ceabfb5bfff4036104cf8c55b053701f1d555ef2/out3.txt#L995
https://github.com/plokhotnyuk/actors/blob/ceabfb5bfff4036104cf8c55b053701f1d555ef2/out3.txt#L1037

Lot of thanks to @sonenko, @exlevan, @folone, @t3hnar and @ancane how helped me during developing of these improvements