【发布时间】:2017-05-18 23:24:37
【问题描述】:
您好,我正处于为即将开始的项目选择演员框架的早期阶段。据我所知,Orleans 旨在以牺牲一些性能为代价,尽可能地减轻开发人员的痛苦。在 Akka.net 中,我知道 actor 的大小是 400 字节如果我是对的,你必须去底层处理集群连接和由 orleans 管理的东西,但会给你带来很好的性能。
我在互联网上找到的Orleans 的唯一性能指标是:
在 Microsoft Azure 上使用 X-Large VM(8 个 CPU 内核 / 14 GB RAM),每个 VM 一个孤岛:
Grain 每秒最多可处理 1,000 个请求。 silo 每秒最多可处理 10,000 个请求。 一个筒仓可容纳 100,000 个活性谷物。
对于 Akka.net,主要是 page:
单台机器上每秒 5000 万条消息。内存占用小;每 GB 堆约 250 万演员。
我想知道在 Akka.net 场景中使用了哪些机器,以及它们如何执行 Grain vs Actor(以每秒请求数以及你可以在 GB 的 RAM 中容纳多少个 grain/actor 或less) 以及一粒粒在内存中的重量。
根据 Orleans 和 Akka.net 的引述,看起来 Akka.net 的性能要好得多,但我想进一步比较两者的性能。
我发现了这个Akka.Net VS MS Orleans Comparison 和Orleans and Akka Actors: A Comparison,但没有解决性能问题。
谢谢!
【问题讨论】:
-
我想您会发现——与所有分布式计算一样——性能取决于很多因素,而您的应用程序逻辑可能是主要因素。我更喜欢奥尔良的方法,因为我是一名开发人员,我不想管理每一个细节,但这只是我的看法。使用这两种方法构建原型,看看哪种方法最有效。
-
正如@DanWilson 已经说过的,基准测试基于很多因素,因此很难真正进行比较。虽然 Akka .NET 可能更快,但它的级别也低得多。在分布式计算方面,易于扩展和开发通常比原始处理能力重要得多。到目前为止,我宁愿以牺牲我永远不需要的额外性能为代价来节省许多开发人员几个月的工作。