☆ノノハ
从*’w’)
(つactorsと)
Evaluation of API and performance of different actor libraries written on Scala: Akka vs. Lift vs. ProxyActors vs. Scala vs. Scalaz
Single-producer sending
- throughput of message sending from external thread to an actorMulti-producer sending
- throughput of message sending from several external threads to an actorMax throughput
- throughput of message sending from several external threads to several actorsPing latency
- average latency of sending of a ping message between two actorsPing throughput 1K
- throughput of executor service by sending of a ping message between 1K pairs of actors
- CPU: 2 cores or more
- RAM: 10Gb or greater
- JDK: 1.7.0_x or newer
- Maven: 3.0.4 or sbt: 0.12.3
Use following command-line instructions to build from sources and run benchmarks with Scala's ForkJoinPool in FIFO mode:
mvn -B clean test >outX.txt
or
sbt clean test >outX.txt
To run benchmarks for all available types of executor service use mvnAll.sh
or sbtAll.sh
scripts (for Windows: mvnAll.bat
or sbtAll.bat
).
Recommended values of JVM options which can be set for MAVEN_OPTS and SBT_OPTS system variables:
-server -Xms1g -Xmx1g -Xss1m -XX:NewSize=512m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+TieredCompilation -XX:+UseG1GC -XX:+UseNUMA -XX:+UseCondCardMark -XX:-UseBiasedLocking -XX:+AlwaysPreTouch
Results of running mvnAll.bat or mvnAll.sh scripts on different environments with pool size set to number of available processors, 1, 10, or 100 accordingly:
Intel(R) Core(TM) i7-2640M CPU @ 2.80GHz (max 3.50GHz), RAM 12Gb DDR3-1333, Windows 7 sp1, Oracle JDK 1.8.0-ea-b96 64-bit
Intel(R) Core(TM) i7-2640M CPU @ 2.80GHz (max 3.50GHz), RAM 12Gb DDR3-1333, Windows 7 sp1, Oracle JDK 1.7.0_40-ea-b31 64-bit
Intel(R) Core(TM) i5-3570 CPU @ 3.40GHz (max 3.80GHz), RAM 16Gb DDR3-1333, Ubuntu 12.04, Oracle JDK 1.7.0_40-ea-b28 64-bit