Akka如何达到如此高的性能?

时间:2013-12-09 04:48:28

标签: multithreading performance akka actor

Akka提供了一些高性能:

  单台机器上有5000万消息/秒。内存占用小;每GB堆大约250万个演员。

actor表现为“喜欢”单个线程,意味着您可以并行处理消息。我只是好奇它是如何在每个GB的堆中拥有~250万个演员?这是否意味着我可以使用actor执行250万个并行任务?显然,每GB不能有这么多线程。

1 个答案:

答案 0 :(得分:3)

您不需要250万活跃参与者来处理5000万msg /秒。 Akka团队在一台48核机器上工作的96名演员达到了50M msg / sec(请参阅下面的详细链接)。

基本上,这些数字(“5000万msg / sec”和“每GB约250万名演员”)彼此无关。

“每GB约250万名演员”意味着Akka演员体重轻,占用内存很少(当然,他们一次都不能活动 - 这在很大程度上取决于核心和数量调度程序设置中的线程数。)

“5000万msg / sec”意味着可以通过仔细调整actor池大小和调度程序设置(see details here)来实现这种性能水平。