benchmark-run-compiled reported the same sorry time to *Messages* on:

(progn (emacs-lisp-native-compile-and-load) (benchmark-run-compiled (build-sieve (expt 10 8))))

(68.42455689 1 1.1884078129999995)

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.