HIPE'd stdlib modules rule !!!

Chris Pressey cpressey@REDACTED
Mon May 26 21:54:43 CEST 2003


On Mon, 26 May 2003 15:51:04 +0200
Kostis Sagonas <kostis@REDACTED> wrote:

> Eric Newhuis wrote:
> [...]
>   > Were there former recommendations against HIPEing the standard
>   > Erlang library modules?
> 
> Not as far as I know.  There should not be.  Currently, there are
> not compiled to native code by default mostly to preserve backwards
> compatibility and to minimize the number of possible surprises to
> the user, whether these are positive (i.e. increased performance),
> or negative (changes in observable behaviour; e.g. no debugging).

Well, here's my experience -
I recompiled kernel (except erl_epmd and hipe_x86_loader, which I
couldn't get compiled for lack of proper header files) and stdlib
(erl_parse took nearly 2 hours!) with +native.

I also recompiled pibfi ( http://www.catseye.mb.ca/projects/pibfi-+ )
with +native, and ran the standard torture test (as shown in its
SCREENSHOT.)

Before doing this, the torture test took about 2 and a half hours
averaging 185,000 instructions per second.

With kernel, stdlib, and pibfi HiPE'd, the torture test took about 6
hours and averaged 74,000 instructions per second.

Clearly, not what I expected.  Looking at the pibfi code, it may be
that, even though it 'looks' sequential, it just relies on message
passing too much (between the interpreter and the store, etc.)

On the other hand - everything still worked; the output was correct.

Anyway, my feeling is that judicious use of +native is probably a
better way to go than just compiling everything with HiPE ("+naive"? :)

-Chris



More information about the erlang-questions mailing list