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

16-05-31 banq
                   

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