17

嗨,我正处于为即将开始的项目选择演员框架的早期阶段。据我所知,Orleans 旨在以牺牲一些性能为代价,尽可能地减轻开发人员的痛苦。在 Akka.net 中,我知道 actor 大小是 400 字节如果我是对的,并且您必须去低级别处理集群连接和由 orleans 管理的事情,但会给您带来出色的性能。

我在互联网上为奥尔良找到的唯一性能指标是:

在 Microsoft Azure 上使用 X-Large VM(8 个 CPU 内核/14 GB RAM),每个 VM 一个接收器:

一个grain每秒最多可以处理1000个请求。silo 每秒最多可处理 10,000 个请求。一个筒仓将容纳 100,000 个活性谷物。

对于主页中的 Akka.net :

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

我想知道在 Akka.net 场景中使用了哪些机器以及它们如何执行 Grain vs Actor(就每秒请求数以及您在 GB 的 RAM 中或多或少可以容纳多少个 grain/actors 而言)和一粒粒在记忆中的重量是多少。

根据 Orleans 和 Akka.net 的报价,看起来 Akka.net 的性能要好得多,但我想进一步比较两者的性能。

我发现了这个Akka.Net VS MS Orleans ComparisonOrleans and Akka Actors: A Comparison但没有解决性能问题。

谢谢!

4

2 回答 2

23

Akka.net报告本地消息,这些消息基本上是函数调用。Orleans报告远程消息,请参阅 RPC。这是一个主要区别。当然还有其他区别。

除了上述之外,我能给你的唯一真正建议是在通信模式和服务器数量方面尽可能接近生产的设置中,为你的实际基准测量自己。

于 2017-01-04T15:57:36.803 回答
4

Microsoft Orleans 用于开发 Halo 4 和 Halo 5 的后端,这两款游戏都因其在在线比赛中的多人游戏性能而广受赞誉。

我与 Akka.net 合作,我听到并阅读了很多评论,声称 Akka.net 因为这个和那个而更好或更快,但几乎没有证据表明他们的主张是基于什么。

我建议您忽略偏见并进行自己的研究或研究每个用例。还要记住,性能比较可能会偏向于开发人员熟悉的工具。

我个人认为与 Akka.net 相比,Microsoft Orleans 的学习速度更快,并且代码的样板更少。此外,它对 C# 开发人员的习惯更为熟悉。

您关于 Akka vs Orleans 的链接没有比较 Akka.net 和 Orleans。JVM 上的 Akka 是另一回事。Akka.net 只是一个端口,JVM 与 dotnet 运行时完全不同,这就是为什么奥尔良团队说 C# 不需要像 Akka 这样的东西(抱歉,我找不到他们的帖子这么说)。

于 2021-11-06T16:55:34.747 回答