[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: return
From: |
Stefan Monnier |
Subject: |
Re: return |
Date: |
Fri, 03 Dec 2010 20:35:34 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) |
> Hmm, yes, I was testing on interpreted code. Here is a new test using a
> byte-compiled file:
> (defun test-loop-nocatch ()
> (dotimes (ii 2000000)
> (let ((ll '(1 2 3 4 5 6 7 8 9 10)))
> (while ll
> (setq ll (cdr ll))))))
> Averaging over ten runs, this takes 1.351 +- 0.022s without an internal
> catch, and 1.371 +- 0.034s with an internal catch.
The Fwhile function is not used in the byte-compiled version of the
`while' special form. Instead, the byte-compiler turns it into a bunch
of byte-codes like test and jump to label.
So your "with an internal catch" version should perform 100% identically
in this test ;-)
Stefan