牵着老婆满街逛

严以律己,宽以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

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在并发、分布式编程中如此受推崇?我认为因为它本身是并发和并行在语义、处理上的一致,所以它编写此类程序更加方便。同时,它提供的是一个关于并发、并行以及分布式的统一的解决方案,而不仅仅是高并发。它的目的是构建有容错能力、有伸缩性的可靠系统,同时又能最简化编程工作。这就是它的真正的优势。

posted on 2011-07-03 23:56 杨粼波 阅读(2828) 评论(5)  编辑 收藏 引用

评论

# re: Erlang的并发性能也并非最强 2011-07-04 12:36 user

高并发!=高性能
  回复  更多评论   

# re: Erlang的并发性能也并非最强[未登录] 2011-07-04 13:03 杨粼波

是这样的。
不过,大多人都走进了这样一个误区。不过看起来是挺容易混淆的。  回复  更多评论   

# re: Erlang的并发性能也并非最强 2011-08-20 15:45 cn

其实C的性能没有汇编语言好,哈哈哈哈  回复  更多评论   

# re: Erlang的并发性能也并非最强 2015-02-03 16:15 shuinan

看了一些评论之后,我对erlang的影响越来越不好。 erlang收欢迎,一是初级程序员可以很快上手,容易写出可用的代码; 二是 erlang对并发、集群有极好的支持。

不过,第一个方面,为啥要让初级程序员来写重要的服务器应用呢?
第二个方面,实际上使用c/c++等有相关的框架和库支持,做并发、集群也不困难。

一篇文章说:erlang是虚拟机语言,对于顺序代码的执行速度只有C的七分之一;再加上其古怪的语法。

所以,我的感觉是erlang不是一个好东西。 没有未来。  回复  更多评论   

# re: Erlang的并发性能也并非最强[未登录] 2015-02-11 23:10 杨粼波

@shuinan erlang,我觉得不是初级程序员能够写好的。
集群是件复杂的事情,这需要很深厚的积累,而用erlang则不需要那么深的积累。  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理