我正在研究Json序列化解决方案。
我发现,在发射的代码已经运行了一次(每次使用不同的数据)之后,基于发射的序列化比在Reflection api上进行直接操作要快得多。
显然是JIT。如果您在TId
中检查System.Guid
的实现,可以验证这一点,这是一个QCall方法。它只会为DynamicMethod的MethodDescriptor生成一个Prestub。
因此,我想知道是否有一种方法可以强制编译DynamicMethod。 System.String
提供的PreJIT功能根本无法使用,因为我无法直接访问DynamicMethod的RuntimeMethodHandle。那么还有其他(合法)方式可以实现这一目标吗?
谢谢。