[erlang-questions] The inner workings of erlang:element/2
Björn Gustavsson
bjorn@REDACTED
Thu Sep 10 13:02:02 CEST 2015
On Thu, Sep 10, 2015 at 11:01 AM, Adam Krupicka <akrupicka@REDACTED> wrote:
> Hello,
>
> I was recently profiling some code and noticed that erlang:element/2
> doesn't show up in neither eprof nor fprof. How is this possible? Is the
> compiler being smart here and rewriting
>
> X = erlang:element(3, A)
>
> with
>
> {_, _, X} = A?
>
No. element/2 is implemented using a special instruction (or
actually one of several different instructions depending on
the context of the call).
In general, any BIF that may be called in a guard are
implemented using instructions that don't support
tracing (i.e. don't show up in eprof/fprof).
/Bjorn
--
Björn Gustavsson, Erlang/OTP, Ericsson AB
More information about the erlang-questions
mailing list