Skynet对几个Actor 协程和Future进行1M线程并发性能测试

Skynet分别在OSx windows和Linux下测试了几个Actor、协程/通道和Future/promise进行1M线程并发性能测试

Macbook 12" '2015, Core M, OS X的测试结果

Actors类型:
Scala/Akka: 6379 ms.
Erlang (non-HIPE): 4414 ms.
Erlang (HIPE): 3999 ms.

协程/通道Coroutines / channel类型:
Haskell (GHC 7.10.3): 6181 ms.
Go: 979 ms.

Futures / promise类型:
.NET Core: 650 ms.
RxJava: 219 ms.

i7-4770, Win8.1测试结果如下
Actor类型:
Scala/Akka: 4419 ms
Erlang (non-HIPE): 1700 ms.

协程/通道Coroutines / channel类型:
Haskell (GHC 7.10.3): 2820 ms.
Go: 629 ms.
F# MailboxProcessor: 756ms. (should be faster?..)

Futures / promise类型:
.NET Core: Async (8 threads) 290 ms
Node-bluebird (Promise) 285ms / 195ms (after warmup)
.NET Full (TPL): 118 ms.

i7-4771, Ubuntu 15.10测试结果如下
Scala/Akka: 1700-2700 ms
Haskell (GHC 7.10.3): 41-44 ms
Erlang (non-HIPE): 700-1100 ms
Erlang (HIPE): 2100-3500 ms
Go: 200-224 ms

总体来说,Go语言并行性能不错。Node.js也不差,都是差不多1秒以下。

GitHub - atemerev/skynet: Skynet 1M threads microb