假設我在一個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