17

こんにちは 私はこれから始めようとしているプロジェクトのアクター フレームワークを選択する初期段階にあります。私が知る限り、Orleans はパフォーマンスをいくらか犠牲にして、開発者をできるだけ多くの苦痛から解放することを意図していました。Akka.net では、アクターのサイズが 400 バイトであることを知っています。私が正しければ、クラスター接続や orleans によって管理されるものを処理するために低レベルに移動する必要がありますが、優れたパフォーマンスが得られます。

Orleansのインターネットで見つけた唯一のパフォーマンス メトリックは次のとおりです。

Microsoft Azure で超大規模 VM (8 CPU コア / 14 GB RAM) を使用し、VM ごとに 1 つのサイロを使用:

グレインは、1 秒あたり最大 1,000 のリクエストを処理します。サイロは、1 秒あたり最大 10,000 のリクエストを処理します。サイロは 100,000 個のアクティブな穀物を保持します。

メインページの Akka.net の場合:

1 台のマシンで 5,000 万メッセージ/秒。小さなメモリフットプリント; ヒープ 1 GB あたり約 250 万のアクター。

Akka.net シナリオで使用されたマシンと、Grain vs Actor をどのように実行するか (1 秒あたりのリクエストと、1 GB の RAM に多かれ少なかれ収まるグレイン/アクターの数に関して) を知りたいです。メモリ内の穀物の重みはどのくらいですか。

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 と Orleans に関するリンクは、Akka.net と Orleans を比較していません。JVM 上の Akka は別の話です。Akka.net は単なるポートであり、JVM は dotnet ランタイムとはまったく異なるため、Orleans チームは、C# は Akka のようなものを必要としないと述べています (申し訳ありませんが、このような投稿が見つかりませんでした)。

于 2021-11-06T16:55:34.747 に答える