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秒以下。