阅读 207

Erlang 性能

在讨论性能时,需要注意有关Erlang的以下几点。

  • Funs非常快 −在R6B中为Funs赋予了自己的数据类型,并在R7B中对其进行了进一步优化。

  • 使用 ++ 运算符−需要正确使用此运算符。以下示例是执行++操作的错误方法。

在线示例

-module(helloworld). -export([start/0]). start()->
   fun_reverse([H|T]) ->
   fun_reverse(T)++[H]; 
   fun_reverse([]) ->
   [].

当++运算符复制其左操作数时,结果将被重复复制,从而导致二次复杂度。

  • 使用字符串−如果处理不当,字符串处理可能会很慢。在Erlang中,您需要更多地考虑如何使用字符串,并选择适当的表示。如果您使用正则表达式,请使用STDLIB中的re-module而不是过时的regexp模块。

  • BEAM 是一个基于堆栈的字节码虚拟机−BEAM 是一个基于寄存器的虚拟机。它有1024个虚拟寄存器,用于保存临时值和调用函数时传递参数。需要在函数调用后存活的变量被保存到堆栈中。BEAM 是一个线程代码解释器。每条指令都是直接指向可执行 c 代码的单词,使得指令分派非常快。


文章分类
代码人生
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐