JIT status: how to introspect

Max Lapshin max.lapshin@REDACTED
Sat Feb 27 17:52:49 CET 2021


I've read this article:
https://www.erlang-solutions.com/blog/performance-testing-the-jit-compiler-for-the-beam-vm/

and I see that perf top shows functions that are looking like  $gen_server2_loop

When I launch my flussonic with erl 24, I do not see any functions
with this pattern, only functions from C.

So this is why I want to understand: is JIT working or I haven't
launched it at all?

On Wed, Feb 24, 2021 at 10:43 PM Max Lapshin <max.lapshin@REDACTED> wrote:
>
> 23.77% beam.smp [.] ac_find_all_non_overlapping
> 13.11% libc-2.27.so [.] __memmove_avx_unaligned_erms
>
> I think that it is rather clear that we need to do something with
> binary:split(..., [global])
>
> On Wed, Feb 24, 2021 at 8:57 PM Dan Gudmundsson <dgud@REDACTED> wrote:
> >
> > All code is jit-compiled, so there is nothing to check.
> >
> > The jit helps sequentiell code only, if that is not your bottleneck you will not see any speedup.
> > as if your current code uses a lot of bif's/nif's and message passing.
> > And I guess there is still minor stuff that can be improved.
> >
> > On Wed, Feb 24, 2021 at 6:01 PM Max Lapshin <max.lapshin@REDACTED> wrote:
> >>
> >> Hi.
> >>
> >> I've tried to launch our flussonic under jit.
> >>
> >> Thank you a lot for this work.  We got zero speedup, but perf top have
> >> showed where we can achieve up to 20% of boost (or maybe more).
> >>
> >>
> >> Is it possible to introspect current jit status?  Something like:
> >>
> >>
> >> > jit:info().
> >> #{
> >>   calls => ...
> >>    misses => ...
> >>    ...
> >> }
> >>
> >> or what do you use to check it in runtime?


More information about the erlang-questions mailing list