summaryrefslogtreecommitdiff
path: root/devdocs/elisp/speed-of-byte_002dcode.html
diff options
context:
space:
mode:
Diffstat (limited to 'devdocs/elisp/speed-of-byte_002dcode.html')
-rw-r--r--devdocs/elisp/speed-of-byte_002dcode.html25
1 files changed, 25 insertions, 0 deletions
diff --git a/devdocs/elisp/speed-of-byte_002dcode.html b/devdocs/elisp/speed-of-byte_002dcode.html
new file mode 100644
index 00000000..dae47485
--- /dev/null
+++ b/devdocs/elisp/speed-of-byte_002dcode.html
@@ -0,0 +1,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>