Open
Description
Currently, the first invocation of a method via reflection goes via a native code path using the RuntimeMethodHandle::InvokeMethod
and the following invocations use dynamically generated managed code. The usage of the native code path is there to improve startup time.
However, we can mitigate the startup time impact by precompiling reflection invocation stubs to a few dozen most common signatures. Then we can get rid of the native code path completely.