Table Of Contents

Previous topic

3. 最初のターゲットシステムの作成

Next topic

2. Erlangのパフォーマンスに関する8つの都市伝説

This Page

1. イントロダクション

1.1. 目的

効率的なコード(efficient code)というものは、しっかりと構造が作られ、無駄のないコードです。無駄のないコードというのは、上から下までしっかりしたアーキテクチャと、きちんとしたアルゴリズムに基づいて開発されているものを意味します。効率的なコードというのは高度に実装されたコードであり、ドキュメントが必要なインタフェースや、現在の実装の分かりにくい部分をうまくやりくりしたりする必要のないものを意味しています。

理想的には、コードを書き始めるときには、最初は作成する効率的なコードだけを含むプログラムを作成すべきです。作ってみた結果、もしプログラムがとても遅いということが分かったら、まずはアプリケーションのプロファイルを取り、パフォーマンスのボトルネックがどこにあるのかを見つけます。そして、計測して見つけたボトルネックだけを最適化します。それ以外のコードはできる限りクリーンに保ち、無駄を排除すべきです。

幸いなことに、R12Bから導入されたコンパイラと、実行時の最適化のおかげで、無駄がなく、効率的なコードを作成するのがずっと簡単になりました。例えば、R11B以前で必要だった、高速化のためにバイナリパターンマッチをするという、決してスマートとはいえないような回避策を取る必要はもはやありません。実際、スマートではないコードというものは、無駄のないコードに比べると遅いのです。これは、スマートではないコードが遅くなるというのではなく、無駄のないコードがより高速になるというのが理由です。

このEfficiency Guideを読んだだけでは、実際に効率的なコードがどんどんと書くことができるようになる、ということはないでしょう。このガイドが目指しているものは、避けるべきテクニックと、使うべきテクニックに関していくつかの指針を与えることと、いくつかの言語の機能がどのように実装されているのかを理解してもらう、というものです。

1.2. 条件

このガイドでは、読者がErlangのプログラミング言語と、OTPのコンセプトに精通していることを想定しています。

Copyright (c) 1991-2009 Ericsson AB