Arranging arguments for speed
Thomas Lindgren
thomasl_erlang@REDACTED
Mon Mar 24 11:21:57 CET 2003
--- Roger Price <rprice@REDACTED> wrote:
> Given a function such as
>
> f(X,alpha) -> ...;
> f(X,bravo) -> ...;
> .....
> f(X,zebra) -> ... .,
>
> would it run faster if re-written as
>
> g(alpha,X) -> ...;
> g(bravo,X) -> ...;
> .....
> g(zebra,X) -> ... . ?
>
> It was certainly the case for a Prolog system I once
> used, and I wondered
> if Erlang also used a hash of the function name and
> the first argument to
> find the clause.
There is luckily no need for that. The BEAM compiler
uses a more flexible algorithm than most Prologs. (The
reason is roughly that unification is hairier than
pattern matching, so one normally has to be more
conservative in a Prolog compiler.)
Try 'erl -S foo.erl' to get the BEAM code for foo and
see if it looks right.
Best,
Thomas
__________________________________________________
Do you Yahoo!?
Yahoo! Platinum - Watch CBS' NCAA March Madness, live on your desktop!
http://platinum.yahoo.com
More information about the erlang-questions
mailing list