summaryrefslogtreecommitdiff
path: root/devdocs/elisp/speed-of-byte_002dcode.html
blob: dae47485f655db89636a8fdfd56fe1a5683a16af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 <h3 class="section">Performance of Byte-Compiled Code</h3> <p>A byte-compiled function is not as efficient as a primitive function written in C, but runs much faster than the version written in Lisp. Here is an example: </p> <div class="example"> <pre class="example">(defun silly-loop (n)
  "Return the time, in seconds, to run N iterations of a loop."
  (let ((t1 (float-time)))
    (while (&gt; (setq n (1- n)) 0))
    (- (float-time) t1)))
⇒ silly-loop
</pre>

<pre class="example">(silly-loop 50000000)
⇒ 10.235304117202759
</pre>

<pre class="example">(byte-compile 'silly-loop)
⇒ <span class="roman">[Compiled code not shown]</span>
</pre>

<pre class="example">(silly-loop 50000000)
⇒ 3.705854892730713
</pre>
</div> <p>In this example, the interpreted code required 10 seconds to run, whereas the byte-compiled code required less than 4 seconds. These results are representative, but actual results may vary. </p><div class="_attribution">
  <p class="_attribution-p">
    Copyright &copy; 1990-1996, 1998-2022 Free Software Foundation, Inc. <br>Licensed under the GNU GPL license.<br>
    <a href="https://www.gnu.org/software/emacs/manual/html_node/elisp/Speed-of-Byte_002dCode.html" class="_attribution-link">https://www.gnu.org/software/emacs/manual/html_node/elisp/Speed-of-Byte_002dCode.html</a>
  </p>
</div>