假设我在一个Erlang应用程序中创建新的本地进程,我想给它一个大消息。二郎 - 发送大消息性能
-module(chain_hello).
start(N, Some_big_data)->
Pid1 = spawn(chain_hello, some_fun, [N]),
Pid1 ! Some_big_data,
io:format("done \n").
尽管Some_big_data
是真正的大数据的引用(例如文件的内容。) - 它是在发送时复制?性能有很大的处罚吗?
通常我会使用一些线程安全共享对象(和/或互斥)。 Erlang有没有解决方案可以避免复制邮件内容?
新增:
有趣的情况是,当Some_big_data是结构化的内容 - 要具体:地图,关于这一点我可以执行某些操作。
ADDED2
好的,我看到存在用于二郎没有这样的溶液(剪切等地图在工作进程一些结构化数据) - 由于二郎设计。但我认为这是合理的工作,并容易同意管理。
我想这只是“erlangish解决方案”(听起来很安静,但效率不高) - 根据需要通过单独的数据管理器进程调用和复制值。感谢您的回应! – 2011-03-23 12:33:36