簡體   English   中英

Akka.net演員大小

[英]Akka.net actor size

我們看到的Akka.net演員大約每個2900字節。 (Akka.net v0.6.1.0)

這是Akka.net中每個演員的大致尺寸嗎?

程序代碼段

ActorSystem actor_system = ActorSystem.Create("myActor");//create an actor

     var greeter = actor_system.ActorOf<GreetingActor>("greeter");
     InternalActorRef[] greeterArray = new InternalActorRef[100000];

      for (int i = 0; i < greeterArray.Length; i++)
        {
          greeterArray[i] = actor_system.ActorOf<GreetingActor>("greeter" + i);
          Console.WriteLine("Creating Actor number " + i);
        }

招待員

using Akka;
using Akka.Remote;
using Akka.slf4net;
using Akka.Actor;

namespace Akka_NET_test
{
    //Create the actor class
    public class GreetingActor : UntypedActor
    {       

        protected override void OnReceive(object message)
        {

         message
           .Match()
         //this can be done with "if (message is Greet)" if you prefer
           .With<Greet>(m => Console.WriteLine("Hello {0} from GreetingActor " +  this.Self.ToString(), m.myMsg));
        }
    }
}

迎接

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Akka;
using Akka.Remote;
using Akka.slf4net;

namespace Akka_NET_test
{
    //Create a message type that your actor will respond to
    public class Greet
    {
        public string myMsg { get; set; }
    }
}

對於Akka jvm,大小約為400字節/ actor,對於Erlang,大小約為300字節/進程。

在Akka.net上的CLR上播放100,000個演員似乎每個大約2900個字節。

這大概是正確的嗎?

提前致謝!

Akka.NET的重量可能比目前階段所需要的重得多。

例如:

  • ActorPath每個元素當前都有其前綴元素的完整副本。 所以至少有一些冗余字節,因為字符串和列表就在那里。 (我們有一個重構這個的任務)

  • ActorCell和它的相關類都使用並發字典來存儲子actorrefs,這將是低效的memmory明智,我們正在努力移植scala childcontainer特性。

因此,當我們接近1.0版本時,預計內存消耗會下降。

你使用了什么樣的探查器? 例如,如果您正在使用Windows任務管理器,那么您可以保證看到不正確的數字,這是對.NET內存的積極預分配。

另外,看看新的ReceiveActor http://akkadotnet.github.io/wiki/ReceiveActor這不使用message.Match().With(...)表示法,因此,將更輕GC由於沒有為每個收到的消息分配任何模式匹配對象。

Actor大小現在為400字節與Erlang相當,即300-400字節

引自www.getakka.net

單台機器上的高性能5000萬msg /秒。 內存占用小; 每GB堆大約250萬個演員。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM