Next: バイトコンパイル関数, Up: バイトコンパイル [Contents][Index]
バイトコンパイルされた関数はCで記述されたプリミティブ関数ほど効率的ではありませんが、Lispで記述されたバージョンよりは高速に実行されます。以下は例です:
(defun silly-loop (n) "ループをN回繰り返し実行して時間を秒でリターンする" (let ((t1 (float-time))) (while (> (setq n (1- n)) 0)) (- (float-time) t1))) ⇒ silly-loop
(silly-loop 50000000) ⇒ 5.200886011123657
(byte-compile 'silly-loop)
⇒ [コンパイルされたコードは表示されない]
(silly-loop 50000000) ⇒ 0.6239290237426758
この例ではインタープリターによる実行には5秒以上を要しますが、バイトコンパイルされたコードは1秒未満です。これは典型的な結果例ですが、実際の結果はさまざまでしょう。