[Mono-dev] Long execution time on first execution (in AOT case)

Martin Däumler mdae at cs.tu-chemnitz.de
Tue Oct 5 12:08:39 EDT 2010


Martin Däumler wrote:

> On Fri, Jul 9, 2010 at 2:51 PM, Rodrigo Kumpera wrote:
>
>> On Fri, Jul 9, 2010 at 4:06 AM, Martin Däumler<mdae at cs.tu-chemnitz.de
>> <mailto:mdae at cs.tu-chemnitz.de>>  wrote:
>>
>>      [...]
>>
>>      So, my question is: Is the method "mini_method_compile()" the only
>>      place in Mono that triggers the JIT compiler on that level? Is there
>>      way to trigger the JIT compiler that does not use the method
>>      "mini_method_compile()"?
>>
>>
>> No, there isn't.


Hello,

thank you for the answer. Now, I try to execute the trampoline code
before executing the assembly. "Normal" call instructions work but
I have two questions concerning calls through vtables [1],[2].

1. Do "mono_method_get_imt_slot()" and "mono_method_get_vtable_index()"
    calculate the IMT and VTable slot number for a given method at
    JIT-compile time, respectively? Or there are other methods that
    do the job (maybe at runtime)?

2. Which method determines the method handle for a given method which
    is expected on the stack by "mono_magic_trampoline()" in case of
    calls through vtables? Or it's simply the pointer to the struct
    MonoMethod?


With kind regards,
Martin Däumler

[1] 
http://monoruntime.wordpress.com/2009/04/22/interface-method-dispatch-im-table-and-thunks/
[2] http://primates.ximian.com/~massi/blog/archive/2007/May-10.html


More information about the Mono-devel-list mailing list