Erlang的并發性能也并非最強
轉載自:http://www.cublog.cn/u3/103983/showart_2513630.html
http://www.cyask.com/question.php?qid=467 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在并發、分布式編程中如此受推崇?我認為因為它本身是并發和并行在語義、處理上的一致,所以它編寫此類程序更加方便。同時,它提供的是一個關于并發、并行以及分布式的統一的解決方案,而不僅僅是高并發。它的目的是構建有容錯能力、有伸縮性的可靠系統,同時又能最簡化編程工作。這就是它的真正的優勢。 |