<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Apr 26, 2022 at 7:36 AM Vitor Rocha <<a href="mailto:vitor.vrs@gmail.com">vitor.vrs@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>I managed to get the code size (I suppose) from internal structures:<br></div><div><ul><li>erl_module_instance->code_length (for emulator and asm)</li><li>erl_module_instance->hipe_code->text_segment_size (for HiPE and ErLLVM)</li></ul><div>Does that make sense or are those values unrelated?<br></div></div></div></blockquote><div><br></div><div>I think those values make sense to compare.</div><div><br></div><div>Looking through the code I actually found a way to get the size of the modules. If you do Ctrl+C to enter break mode and then type `l` you will get a listing of all modules and their size in bytes. Not sure if that functionality works for hipe code or not.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Em seg., 25 de abr. de 2022 às 06:13, Lukas Larsson <<a href="mailto:lukas@erlang.org" target="_blank">lukas@erlang.org</a>> escreveu:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hello!</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Apr 19, 2022 at 7:17 AM Vitor Rocha <<a href="mailto:vitor.vrs@gmail.com" target="_blank">vitor.vrs@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>(1) how do I know if my code is actually being executed as interpreted or native?</div></div></blockquote><div><br></div><div>All code loaded from .beam files are run natively if the VM supports JIT compilation.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>(2) If I compile a module inside Erlang's shell, using the `c:c/1` function, is the module going to be compiled to native too? Will its execution be switched to native?<br></div></div></blockquote><div><br></div><div>There is no difference in how it is compiled, it will always be translated into native code when loaded.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div></div><div>(3) Where is stored the generated beamasm native code? I would like to get its size in bytes?<br></div></div></blockquote><div><br></div><div>It is stored in memory of the VM. You can get a file dump of the native code by passing `+JDdump true` when starting `erl`. There is no way to get the loaded memory size of a single module, but you can get a relatively close value by checking what `erlang:memory(code)` returns before and after the module is loaded.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><br></div><div>-- <br><div dir="ltr"><span style="font-family:"trebuchet ms",sans-serif">Atenciosamente,<br>Vitor Rocha da Silva</span><br></div></div></div>
</blockquote></div></div>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr"><span style="font-family:"trebuchet ms",sans-serif">Atenciosamente,<br>Vitor Rocha da Silva</span><br></div>
</blockquote></div></div>