gpt4 book ai didi

大型二进制文件的 Erlang 消息传递,优化性能建议

转载 作者:行者123 更新时间:2023-12-05 08:57:50 26 4
gpt4 key购买 nike

好的,这就是我今天一直在思考的问题(如果我没有事先得到答案,我将在下周进行测试)。

我有许多 Erlang 进程,我需要在它们之间传递大型二进制文件。我一直在做的是使用 gproc:send 定位二进制文​​件并将其发送到适当的进程。但是,我不只是发送一个二进制文件,我通常发送一个元组,例如“{self(),atom, Msg\binary}”。起初我以为这足以满足大型二进制文件的消息处理需求,避免内存复制操作。

8.2 处理消息

All data in messages between Erlang processes is copied, with the exception >of refc binaries on the same Erlang node.

发件人:Erlang Efficiency Guide

但是,现在我开始怀疑,消息处理器/编译器/等是否会理解那里有一个 >64k 的二进制文件?或者它会看到元组然后想,让我们将整个事情复制到另一个进程?就像我指出的那样,我确实计划在下周进行测试以查看结果,我很乐意用我的发现更新帖子。

我正在使用 R16B03-1。

谢谢!

最佳答案

大于或等于 64 字节大小的二进制文件存储在共享区域并被引用计数,因此它们不会在进程之间复制;仅复制对它们的引用。

关于大型二进制文件的 Erlang 消息传递,优化性能建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28795316/

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