gpt4 book ai didi

java - Akka actor消息需要内存池

转载 作者:行者123 更新时间:2023-12-02 13:08:32 25 4
gpt4 key购买 nike

我是java新手。我是c++程序员,现在学习java 2个月了。对不起我的台球英语。

我有一个问题,Akka Actor 模型是否需要内存池或对象池。我想如果我从一个 Actor 向其他 Actor 之一发送一些消息,我必须分配一些堆内存(就像 new Some String 或 new Some BigInteger 等......)并且随着时间的推移,垃圾收集器将开始了(我不确定它是否会启动),这使得我的应用程序计算缓慢。

所以我寻找制作内存池的方法,但失败了(Java不支持内存池)。我可以制作对象池,但在其他项目中我没有发现任何人将对象池与actor一起使用(也在Akka主页中)。

akka 主页上有关于这个主题的文档吗?请告诉我链接或告诉我问题的解决方案。

谢谢。

最佳答案

如果您在多台计算机上使用 Akka(您很可能会这样做),消息将在线路上序列化并发送到另一个实例。这意味着仅仅本地内存池是不够的。

虽然从技术上讲,您可以编写一个自定义 JSerializer(请参阅文档 here )实现,在反序列化后将本地消息存储在内存池中,但我觉得这对于大多数应用程序来说有点过大(并且很容易出现问题) -up 并且实际上会因为 map 中的查找时间而恶化性能)

是的,当 GC 启动时,应用程序在重负载下会有点滞后。但在 95% 的场景中,尤其是在像 Akka 这样的高性能框架下,GC 不会成为你的瓶颈:IO 会。

我并不是说你不应该这样做。我的意思是,在你承担这项任务之前,考虑到它的重要性,你应该使用 Kamon 或其他 Akka 专用的监控解决方案来测量 GC 在运行时对你的应用程序的影响,并且只有当你确定它值得你才可以去做。

关于java - Akka actor消息需要内存池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44042507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com