Akka.net演员大小

 mobiledu2502885017 发布于 2022-12-29 12:43

我们看到的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("greeter");
     InternalActorRef[] greeterArray = new InternalActorRef[100000];

      for (int i = 0; i < greeterArray.Length; i++)
        {
          greeterArray[i] = actor_system.ActorOf("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(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个字节.

这大概是正确的吗?

提前致谢!

1 个回答
  • Akka.NET的重量可能比目前阶段所需要的重得多.

    例如:

    ActorPath当前的每个元素都有其前缀元素的完整副本.所以至少有一些冗余字节,因为字符串和列表就在那里.(我们有一个重构这个的任务)

    ActorCell 它的相关类都使用并发字典来存储子actorrefs,这将是低效的memmory明智的,我们正在努力移植scala childcontainer特征.

    因此,当我们接近1.0版本时,预计内存消耗会下降.

    你使用了什么样的探查器?例如,如果您正在使用Windows任务管理器,那么您可以保证看到不正确的数字,这是对.NET内存的积极预分配.

    另外,看看新的ReceiveActor http://akkadotnet.github.io/wiki/ReceiveActor 这不使用message.Match().With(...)表示法,因此,由于没有为每个收到的消息分配任何模式匹配对象,因此在GC上会更轻.

    2022-12-29 12:46 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有