1.1 目的
过早的优化是一切罪恶的根源 -- D.E.Knuth
高效代码是建立在合理的架构和算法之上的结构良好而整洁的代码。
高效代码是在现有的代码实现中,忽略良好注释的接口,而只关注晦涩难懂带来的“好处”。
理想情况下,你的代码应该只包含第一种高效代码。假如运行太慢,进行性能分析,找出性能瓶颈,并且只优化瓶颈。保持其他代码尽可能的干净整洁。
很幸运,编译和运行时的优化在R12B被引入,这使得写出整洁而高效的代码变得容易。例如,为了获得最快速度的二进制模式匹配而存在于R11B及早期版本中的丑陋代码不再必要了。事实上,丑陋的代码比整洁的更慢(不是因为丑陋的代码变慢了,而是整洁的代码更快了)。
这份高效指南不能教会你如何写出高效的代码,而会列出一些点,告诉你什么是要避免的,什么是应遵循的,以及对这门语言的特点和实现的理解。这里通常不会提到那些在任何语言里都通用的性能优化技巧,例如把计算移到循环之外。
1.2 预备知识
本文假定读者熟悉Erlang编程语言和OTP的概念。