erlang的IO高效不是傳說

2021-08-29 19:09:42 字數 545 閱讀 6048

# erl -smp +k true

erlang (beam) emulator version 5.6.5 [source] [smp:2] [async-threads:0] [hipe] [kernel-poll:true]

eshell v5.6.5 (abort with ^g)

1> erlang:system_info(check_io).[,,

,,,,

,[color=red] ,,,

,[/color]

]erl_poll.c是erlang的poll實現。對epoll的lazy update和concurrent_update進行了大量的優化,batch update在freebsd下管用。我講過的框架包括libevent,ace,haproxy等等。只有haproxy進行了lazy update但是沒有concurrent方面的努力。

erlang的io讀寫大多採用gather write, scatter read 方式,在語法方面就有強大的優勢,列表操作隱含的就是這個語義。

致敬,多年前就這門挖空心思高效能!

見識Erlang網路IO能力

測試目的 比較c,c node.js,erlang網路tcp讀寫效能 測試環境 linux 測試條件 server為簡單的tcp echo伺服器,server和client執行在同一機器上,10000長連線,100活動連線 測試結果 c boost asio connect 10000,active...

Erlang檔案I O效能評測

本測試主要目的是考察erlang檔案i o同c標準i o之間具體的效能差異。erlang中有普通檔案i o和裸檔案i o兩類操作,其中普通檔案i o的檔案控制代碼是乙個程序id,因此可以從erlang節點網路的任意位置訪問該控制代碼 而裸檔案i o的檔案控制代碼是乙個tuple結構,只在同一節點上開...

Erlang模組與Erlang程式的執行方法

一 模組與程式檔案 erlang是一種函式式程式語言,當我們要完成乙個專案時,總不可能把所有的函式都定義在乙個程式檔案中,為了開發和維護方便,通常按邏輯功能劃分將其分別分散在多個程式檔案中。每個erlang程式檔案就是乙個模組,檔名的副檔名部分為.erl,模組的名稱必須與檔名稱中的主檔名完全相同 不...