摘要:
原文链接:http://www.erlang.org/doc/efficiency_guide/commoncaveats.html(水平有限,错误之处欢迎指正)3 一般说明这里列出一些需要注意的模块和内建函数,这里不只关注性能,还有其他。3.1 timer模块用erlang:send_after/3和erlang:start_time/3创建的定时器,远比timer模块创建的定时器高效得多。timer模块用单独的进程管理定时器,如果大量进程经常性的创建和注销定时器,这个进程很容易过载(尤其在使用SMP虚拟机的时候)。有些timer模块的函数不涉及定时器(例如timer:tc/3,timer: 阅读全文
摘要:
原文链接:http://www.erlang.org/doc/efficiency_guide/myths.html(翻译水平有限,错误之处欢迎指正)2 Erlang性能的八个谬论有些真理依然被人们相信,尽管早已被推翻成为谬论,或许是因为“信息”通过口口相传总是比通过发布公告传得快,例如,匿名函数已经变快。这里,我们秒杀那些已成为谬论的,曾经的真理。2.1谬论:匿名函数很慢是的,匿名函数(funs)过去很慢,非常慢,比apply/3还要慢。起初,匿名函数仅仅是用语法糖来实现的,编译诡计,普通元组,apply/3,以及其他一堆技巧。但那已经是古老的历史了。匿名函数在R6B版本有了自己的数据类型, 阅读全文
摘要:
原文链接:http://www.erlang.org/doc/efficiency_guide/introduction.html1 引言1.1 目的过早的优化是一切罪恶的根源 -- D.E.Knuth高效代码是建立在合理的架构和算法之上的结构良好而整洁的代码。高效代码是在现有的代码实现中,忽略良好注释的接口,而只关注晦涩难懂带来的“好处”。理想情况下,你的代码应该只包含第一种高效代码。假如运行太慢,进行性能分析,找出性能瓶颈,并且只优化瓶颈。保持其他代码尽可能的干净整洁。很幸运,编译和运行时的优化在R12B被引入,这使得写出整洁而高效的代码变得容易。例如,为了获得最快速度的二进制模式匹配而存 阅读全文