1 回答

TA貢獻1836條經驗 獲得超13個贊
Erlang的并發性能也并非最強過去曾認為Erlang就代表高并發,高并發就代表高性能,同時認為Erlang就只是高并發的代名詞。其實,Erlang的并發性能也并非最強。首先Erlang的虛擬機是C寫的,其次諸如Haskell、OCaml + JoCaml,以及Python的PyPy,其實都能提供不弱于Erlang的并發能力。
同時Erlang在順序計算上的性能也不佳,甚至不能超過Python、Lua這類腳本語言(也許是和其本身的特殊性質有關)。所以就更落后于Haskell和OCaml這類可編譯的語言。然而即使并發和并行也需要順序計算,所以單從并發性能上來說,Erlang還不是最強的。
Erlang寫的Yaws這個Web服務器,雖然能承受高并發,但性能,尤其是IO性能依然無法與lighttpd、nginx這種C寫的Web服務相比——Erlang的虛擬機本身也是C寫的。
同時,Erlang本身設計為一個結構化編程語言而非面向對象編程語言。這就令其較難應用更有開發效率的面向對象的項目開發流程和方法。
那么為何Erlang在并發、分布式編程中如此受推崇?我認為因為它本身是并發和并行在語義、處理上的一致,所以它編寫此類程序更加方便。同時,它提供的是一個關于并發、并行以及分布式的統一的解決方案,而不僅僅是高并發。它的目的是構建有容錯能力、有伸縮性的可靠系統,同時又能最簡化編程工作。這就是它的真正的優勢。
- 1 回答
- 0 關注
- 748 瀏覽
添加回答
舉報