Erlang-performance
提供:Dev Guides
アーラン-パフォーマンス
パフォーマンスについて話すときは、Erlangについて次の点に注意する必要があります。
- ファンは非常に高速です-ファンはR6Bで独自のデータ型を与えられ、R7Bでさらに最適化されました。
- * 演算子の使用*-この演算子は適切な方法で使用する必要があります。 次の例は、操作を行う間違った方法です。
例
-module(helloworld).
-export([start/0]).
start()->
fun_reverse([H|T]) ->
fun_reverse(T)++[H];
fun_reverse([]) ->
[].
++演算子が左のオペランドをコピーすると、結果が繰り返しコピーされ、2次の複雑さが生じます。
- 文字列の使用-文字列の処理が不適切な場合、処理が遅くなる可能性があります。 Erlangでは、文字列の使用方法についてもう少し考え、適切な表現を選択する必要があります。 正規表現を使用する場合は、 obsolete regexp module の代わりにSTDLIBのre-moduleを使用してください。
- * BEAMはスタックベースのバイトコード仮想マシン*-BEAMはレジスタベースの仮想マシンです。 一時的な値を保持し、関数を呼び出すときに引数を渡すために使用される1024個の仮想レジスタがあります。 関数呼び出しを生き残るために必要な変数はスタックに保存されます。 BEAMはスレッドコードインタープリターです。 各命令は、実行可能なCコードを直接指すワードであるため、命令のディスパッチが非常に高速になります。