見識Erlang網路IO能力

2021-05-31 22:49:58 字數 859 閱讀 8913

測試目的:比較c,c++,node.js,erlang網路tcp讀寫效能

測試環境:linux

測試條件:server為簡單的tcp echo伺服器,server和client執行在同一機器上,10000長連線,100活動連線

測試結果:

c++boost::asio

connect=10000,active connect=100,req=148791,time=60,req/sec=2479.85,msec/req=40.343

erlangkernel-pollfalse

connect=10000,active connect=100,req=979803,time=60,req/sec=16330,msec/req=6.12356

node.js

connect=10000,active connect=100,req=1378370,time=60,req/sec=22972.8,msec/req=4.35543

clibevent

connect=10000,active connect=100,req=3719106,time=60,req/sec=61985.1,msec/req=1.61258

erlangkernel-polltrue

connect=10000,active connect=100,req=6377574,time=60,req/sec=106293,msec/req=0.939882

不能不表示有點驚奇。。。

Erlang檔案I O效能評測

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

erlang的IO高效不是傳說

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 c...

Erlang網路通訊

鏈結建立的三個步驟 1 listen埠 埠listen的時候,核心會維護2個佇列,乙個佇列存放未完成的連線,乙個佇列存放已完成的連線。這裡的未完成的連線指的是客戶端第一次握手包被伺服器收到的連線,已完成的連線指的是客戶端第三次握手包被伺服器收到的連線。2 accept鏈結 1 accept的時候,會...