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

时间: 2024-09-30 02:27:13

Erlang的并发性能也并非最强的相关文章

MongoDB 2.2版本发布 并发性能增强

我们能够看到,广受诟病的全局锁已经在这一版中被拿掉,取而代之的是DB级别的锁,而且collection 级别的锁也不远了. 下面就看看2.2 版本的几个新功能吧: 1.并发性能增强 如上面所说,http://www.aliyun.com/zixun/aggregation/13461.html">MongoDB 2.2版本中不再有凌驾于整个daemon上的全局锁,而是将锁的粒度减小到了DB级别.并且按MongoDB 的CEO Dwight Merriman所说,这次虽然没有一步到位的将锁粒

PHP 7安装使用体验之性能大提升,兼容性强,扩展支持不够(升级PHP要谨慎)

伴随着PHP 7的发布,这几天关于PHP 7性能和兼容性成了大家讨论的热点话题,PHP 7表现出来的高性能让不少人蠢蠢欲动,有些"尝鲜"的朋友已经将PHP 7应用到了生产环境当中了.同时,LNMP等热门应用程序也及时作了更新,纷纷开始支持PHP 7. 提到PHP性能问题,不得不说之前分享的HHVM,这是脸谱公司为提高PHP性能而开发出来的工具,使用了 Just-In-Time (JIT) 编译方式将 PHP 代码转换成某种字节码.实际测试过程中,HHVM对于PHP的性能提高是一个质的飞

java降低锁粒度优化并发性能教程

在高负载多线程应用中性能是非常重要的.为了达到更好的性能,开发者必须意识到并发的重要性.当我们需要使用并发时, 常常有一个资源必须被两个或多个线程共享. 在这种情况下,就存在一个竞争条件,也就是其中一个线程可以得到锁(锁与特定资源绑定),其他想要得到锁的线程会被阻塞.这个同步机制的实现是有代价的,为了向你提供一个好用的同步模型,JVM和操作系统都要消耗资源.有三个最重要的因素使并发的实现会消耗大量资源,它们是:     上下文切换     内存同步     阻塞 为了写出针对同步的优化代码,你必

并发性能优化 – 降低锁粒度

原文链接  作者:Adrianos Dadis 译者:买蓉(sky.mairong@gmail.com) 校对:方腾飞 在高负载多线程应用中性能是非常重要的.为了达到更好的性能,开发者必须意识到并发的重要性.当我们需要使用并发时, 常常有一个资源必须被两个或多个线程共享. 在这种情况下,就存在一个竞争条件,也就是其中一个线程可以得到锁(锁与特定资源绑定),其他想要得到锁的线程会被阻塞.这个同步机制的实现是有代价的,为了向你提供一个好用的同步模型,JVM和操作系统都要消耗资源.有三个最重要的因素使

并发性能测试程序编写

一般要测试软件或者库的性能,需要在多线程条件下进行.本文提供一种编写多线程性能测试的模板,方便大家参考和使用. 本文以AES加密和解密为例,并指出Cipher的获取在程序中的不同位置会对程序性能造成的影响. 程序代码如下: package com.lazycat.secure.aes; import java.nio.charset.Charset; import java.security.NoSuchAlgorithmException; import java.util.concurren

Java、C++性能PK:孰强孰弱

有关C++与Java的争论缘来已久,C++和Java语言之间的不同可以追溯到它们各自的传统,它们有着不同的设计目标.作者针对以上两大网站的问题(感兴趣的朋友可以移步去看下)进行补充与思考,从性能的角度进行对比发表一些看法与见解,一起来看下. 1. 内存使用率.当CPU性能增加时访问RAM就会变得相对缓慢,因此内存使用率在实际运用中非常重要.这一点,Java则显得相对弱一点:a.每个对象至少占用8个字节:b.无法使用堆栈分配对象:C.常用库存迫使形成一个对象.此外,Java对象数组能真正引用数组,

Linux性能优化导读

前 言 为什么性能很重要? 如果你曾经坐等计算机完成工作(同时还伴随着敲打桌面.诅咒和好奇:"啥事儿要花这么长的时间?"),你就会知道有个速度快且性能优化良好的计算机系统是多么重要.尽管不是所有的性能问题都能轻易得到解决,但是,了解系统工作缓慢的原因,就意味着有可能采用不同的解决方法:修复软件问题,升级慢速硬件,或者干脆直接把计算机扔出窗外.幸运的是,大多数操作系统,尤其是Linux,都提供了工具用于检测机器运行缓慢的原因.使用一些基础工具,就可以确定系统中哪里速度慢,并修复那些运行效

[Java]如何提高Web服务端并发效率的异步编程技术?

[编者按]在Java里开发多线程最强有力的实践就是做服务端的并发处理,本文作者阐述了实施多线程的具体实践方法,要真的掌握某种技术你就必须要知其所以然.笔者转发至此,希望对Web开发者有所帮助. 全文如下: 作为一名Web工程师都希望自己做的Web应用能被越来越多的人使用,如果我们所做的Web应用随着用户的增多而宕机了,那么越来越多的人就会变得越来越少了,为了让我们的Web应用能有更多人使用,我们就得提升Web应用服务端的并发能力.那么我们如何做到这点了,根据现有的并发技术我们会有如下选择: 给服

淘宝网前台应用性能优化实践

本文曾发表于2013年4月的<程序员>杂志 近年来,随着用户数和PV的增加,淘宝网的后端服务器数量增长很快:并且我们知道,Web页面延迟时间和转化率之间有着直接的关联.出于提升系统吞吐量.降低成本.减少页面延迟.提升用户浏览体验.提高交易转化率的考虑,淘宝网在性能优化领域做了很多尝试.本文将从应用性能分析.基础设施优化.应用自身优化.前端性能优化这四个方面,对淘宝网的优化尝试做一个总结. 应用性能分析 1. 前台应用介绍 淘宝网前台应用是指商品详情.店铺.购物车等买家直接可以看到和使用的应用,