bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#69480: Emacs Lisp needs, for its great 'native-compile', 'declare' a


From: Robert Boyer
Subject: bug#69480: Emacs Lisp needs, for its great 'native-compile', 'declare' and 'the' for fixnums and arrays.
Date: Thu, 29 Feb 2024 14:54:46 -0600


> You use benchmark incorrectly. 

Huh?  Here is the documentation.

benchmark is an interactive native-compiled Lisp function in ‘benchmark.el’.

(benchmark REPETITIONS FORM)

Print the time taken for REPETITIONS executions of FORM.
Interactively, REPETITIONS is taken from the prefix arg, and
the command prompts for the form to benchmark.
For non-interactive use see also ‘benchmark-run’ and
‘benchmark-run-compiled’.
FORM can also be a function in which case we measure the time it takes
to call it without any argument.

  Probably introduced at or before Emacs version 22.1.

 > And you should use benchmark-run instead, anyway.

Thanks for that.  I'll give it a try.

>  It takes 16.7 sec on my system.

All of my times come from using a $100 Lenovo Chromebook.  How much did your machine
cost?

> Emacs Lisp will never be able to produce performance similar to SBCL, not the way 
> native compilation implemented in Emacs.

Wanna bet?  There are too many geniuses working on Emacs to let this chance for 8X pass.

Thanks for your reply.  My message was inspired by something someone said when I sent
in a much simpler demo of the same 8x point, saying that one needed to show the difference  on
real code.  So I have done so, I hope everyone agrees. Who is more famous than Eratosthenese?

Bob


On Thu, Feb 29, 2024 at 2:11 PM Eli Zaretskii <eliz@gnu.org> wrote:
> From: Robert Boyer <robertstephenboyer@gmail.com>
> Date: Thu, 29 Feb 2024 13:40:14 -0600
>
> Consider this form:
>
> (progn (emacs-lisp-native-compile-and-load) (benchmark (build-sieve (expt 10 8)) 1))
>
> First of all, 'benchmark' has an obvious bug because it reports a time of
> .000005 seconds.

You use benchmark incorrectly.  And you should use benchmark-run
instead, anyway.

> After finding the file eratosthenese.el, the evaluation of the form above
> takes 69 seconds in Emacs.
>
> After entering SBCL and loading eratosthenese.lisp, (build-sieve (expt 10 8))
> takes 8 seconds.

It takes 16.7 sec on my system.

I see no bug here, native-compiled Emacs Lisp will never be able to
produce performance similar to SBCL, not the way native compilation is
implemented in Emacs.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]