全世界只有我们 Erlang 程序员是正确的

全世界只有我们是正确的,其他的全错了。我们(Erlang程序员)找到了症结并正确的解决了问题,所有的其他人(非Erlang人)都找错了方向,解决了错误的问题。

全世界其他人想解决的问题是如何让现存的程序能并行执行。2004年之前,摩尔定律一直有效。每年我们的程序执行都会变得更快,我们不需要成为一个优秀的程序员,我们不需要掌握更优化的算法就能让程序一年比一年更快。

芯片越来越大,时钟速度越来越快,程序运行速度越来越快,每年大概以15%幅度的性能提升。

到了2004年,这些现象终止了。芯片已经足够大,时钟的速率已经快到在一个时钟周期内时钟脉冲不能到达芯片的所有部分。电路设计开始改变。多核处理器出现。

从2004年开始,芯片的体积仍然在增大,但时钟的速率开始变小,每个芯片上的CPU数量开始增加。我们从每一个芯片只有一个超级处理器的时代进入到每个芯片有多个速度较慢、性能较弱的多核处理器时代。

由此开始,顺序执行的程序显得越来越慢,一年慢过一年,而并行执行的程序开始变得越来越快。

问题是,根本没有并行执行的程序,有也是极少。

而Erlang是一种具有并发特征的编程语言,所以Erlang程序本质上在具有并行能力的计算机上运行时要比其它程序都快的多。而唯一能阻挡它运行的更快的问题就是Erlang程序中可能存在一些必须顺序执行的瓶颈。

并行程序中有需要顺序执行的部分,这正应验了Amdahl定律。

假设你的程序中有10%是需要顺序执行的(其余部分可以并行),可以并行的部分的执行时间可以压缩近似0——只要有足够的可以并行的处理器。但顺序执行部分的时间无法缩减。

如果程序中含有10%的需要顺序执行的代码,你的程序执行速度最高能提高10倍。其中1/10的程序的速度永远无法提高,其它9/10的程序的执行时间可以缩减至接近0。

所以,对于Erlang程序员来说,提高他们的程序的运行速度的技巧就是找出代码中需要顺序执行的部分。

而对于任何对于其他编写顺序执行程序的程序员来说,提高他们程序速度的方法是找出他们程序中可以并行执行的部分。

让串行程序自动并行化的征途铺满荆棘,无法走通。(并不完全是这样,在某些特殊环境中是可以实现的,但绝非易事)。

现在的数据中心了都排满了酷炫的新型计算机,某些顶级的配置里拥有多达24核。但它们的性能呢?这些酷炫的新机器能快24倍吗?

对某些程序来说是的,但对大多数程序来说不是。对大多数程序来说24个CPU中只有一个被利用。CPU的低利用率成了一个严重的问题。这点正印证了Alexander Gounares
Brilliant在Erlang factory谈到的问题。

Alexander的演讲让我们隐约看到了未来。他开创concurix让我们看到了未来的方向。他们正在开发工具能自动找出Erlang代码中需要顺序执行的瓶颈。

Concurix使用这些工具来发现Erlang虚拟机中的瓶颈,在他们的测试中显示了惊人的结果。他们找到了一个图片处理应用中的瓶颈,它是zlib库中的一个程序锁,是用C写成的。他们用Erlang重写了它,用Erlang替换了C代码。

这真是不可思议,C程序本应更快,事实也是,但它却有个同步锁。Erlang程序相比之下要慢,但没有状态锁,这赋予了它提升能力的机会。去掉了C代码后,用Erlang写成的图片处理应用比原始的C程序快了很多。

我很吃惊——惊奇于这样的好东西的出现。

当Alexander在Erlang factory的演讲视频出来之后,你们观看时准备好惊奇吧。这是未来,未来就在下周旧金山。

时间: 2024-12-30 08:06:01

全世界只有我们 Erlang 程序员是正确的的相关文章

全世界只有我们Erlang程序员是正确的

问题描述 全世界只有我们是正确的,其他的全错了.我们(Erlang程序员)找到了症结并正确的解决了问题,所有的其他人(非Erlang人)都找错了方向,解决了错误的问题.全世界其他人想解决的问题是如何让现存的程序能并行执行.2004年之前,摩尔定律一直有效.每年我们的程序执行都会变得更快,我们不需要成为一个优秀的程序员,我们不需要掌握更优化的算法就能让程序一年比一年更快.芯片越来越大,时钟速度越来越快,程序运行速度越来越快,每年大概以15%幅度的性能提升.到了2004年,这些现象终止了.芯片已经足

90%的程序员无法正确实现二分查找算法???

     前言            ProgrammingPearls(<编程珠玑>)一书的作者Jon Bentley曾经说过类似的话:"90%的程序员无法正确实现二分查找算法..."      言下之意,只有1/10的程序员能够写出"二分查找算法"来.昨天我突然又看到了这句话,于是就随时打开eclipse写下了,还算顺利. 关于"二分查找算法" "二分查找算法",很多地方也被称作是"折半查找"

成为PHP程序员的正确姿势

本人就是一大三狗,自学PHP时间已经快两年了,感觉自己还是一个入门级的选手.说说自己是如何一步步走过来的. 1. 官方文档 对,我还是坚持那个观点:80%的代码问题都可以通过仔细阅读文档解决. 所以如果你要学习PHP,那么PHP的官方文档你绝对是避免不了的.你可能在刚刚开始的时候是跟着某个老师的网上教学视频来学习的,这种学习编程的方式是极好.但是不管这么看视频,你最后还是得回到官网文档,你不用每个函数都被下来,但对于一些常用的函数和核心概念建议保存到大脑的内存区,保证他们可以在需要的时候随时调出

程序员生存定律-打造属于自己的稀缺性

假设说你想在江湖里谋求一定的地位,那么你可以练习独孤九剑成为超一流高手,也可以练习医术,成为绝世神医.这两者在江湖里都是有地位的,也都是稀缺的,一者是因为杀伤力,二者是因为人都有山高水长. 程序员也一样,增值也好,改善表达力也好,最终都要在某种环境下达成一定的稀缺性,这样一个人才有价值.稀缺性同时受两个维度上的力量影响:一个是自身的努力,比如前文所提到的增值和表达力:一个是大环境的变化以及对这种变化的适应.在这一章里主要关注的是后者. 稀缺性可带给你什么 既然稀缺性对个人有如此大的影响,那稀缺性

15 位健在的牛叉程序员,你知道哪几位?

其实要明确地指出"哪一个"程序员是最优秀的,这几乎不太可能,但是业内的开发者们还是对这个话题乐此不疲.ITworld 就通过投票,以及对其他国外社区(比如 Quora.Reddit)中的数据进行分析,来判断排名和分析是否一致.结果,有一些名字确实在大家的讨论中反复出现. 下面就让我们来看看依然健在的最受大家认可的 15 位优秀程序员: (小编先补充声明,下面排序并不是按个人成就.如果你喜欢的大牛排在后面了,别纠结别激动 ~≧▽≦~ ) 1. Margaret Hamilton 主要成就

为什么你招聘不到程序员,以及软件如何定义现实世界

文/霍炬 2015 年,互联网创业从火热到"寒冷",但有一件事全年都没有变化,就是大家都觉得招聘不到程序员. 我没有确切的数字知道 2015 年这一年程序员的薪资增长的比例,但是我确切的知道,在 2015 年,一个有3~4 年工作经验的年轻程序员,在北京和上海能拿到的薪水已经接近 2010 年盛大创新院给我的薪水了.要知道,2010 年盛大为了创建创新院,给出的是业界顶级的薪水,而且那时候我已经有 8 年的工作经验了.这不过是 5 年前的事,今天,3 年工作经验的程序员薪水已经到了这个

全世界所有程序员都会犯的错误

程序|程序员|错误 当年,国际巨星成龙的「龙种」曝光,众人指责他对不起娇妻林凤娇,逼得他出面召开记 者会,向世人自白他犯了「全世界所有男人都会犯的错误」.从来没犯过这种错误的我, 也因此常常认为自己不是个男人. 虽然没犯过「全世界所有男人都会犯的错误」,但是我倒是曾经犯了「全世界所有程序员 都会犯的错误」.不管使用何种语言,全世界所有程序员都一定犯过这种错误,那就是: 太依赖编译器,却不知道编译器做了哪些事. 一般来说,越高阶的程序语言,会提供越多语法上的便利,以方便程序撰写,这就俗称为 syn

程序员要学会偷懒---正确运用自动化技术

马云语录:   世界是由懒人来支撑的!   懒不是傻懒,如果你想少干,   就要想出懒的方法.       要懒出风格,懒出境界. McConnell在他的<<Code Complete>>提到三种"懒":"实在的懒","开明的懒"以及"一劳永逸的懒".并说明第三种"懒"才是最具产值的"懒",因为它需要运用工具或者代码来为自己完成任务:这就是工作中的自动化.<

用老司机的理财经历告诉你,这才是程序员理财的正确姿势

面对国内CPI持续走高,房价越来越高,金价持续走低,第三方理财野蛮生长,基金理财持续走红的情况,作为程序员的你们,是否已经开始按照自己的规划合理地理财了呢?俗话说,你不理财,财不理你,小钱也可以做投资.各位程序猿,如何让自己手中那点可怜的薪水保值?如何打理自己那点积蓄的呢?本文就为大家分享以为程序员同学的理财经历,希望能对大家有所帮助. 理财经历 我的理财大概也是从毕业三年之后才慢慢开始的,对了也就是从余额宝开始,后来在第三方支付.互联网金融公司工作,对理财的种类了解慢慢多了起来,互联网金融也就