xLua icon indicating copy to clipboard operation
xLua copied to clipboard

嵌套类反射机制问题

Open UltraREX opened this issue 3 years ago • 0 comments

举例来说: Unity ParticleSystem 类中有很多前套结构体、类,在将 ParticleSystem 生成 Wrap 代码后,打开 NOT_GEN_WARNING 宏,将使用反射的地方暴露出来

发现: ObjectTranslator 的 TryDelayWrapLoader 中

foreach (var nested_type in type.GetNestedTypes(BindingFlags.Public))
{
    if (nested_type.IsGenericTypeDefinition())
    {
        continue;
    }
    GetTypeId(L, nested_type);
}

会事先将当前类中的所有前套类型都事先通过反射将对应的类型缓存下来。在类中前套类型特别多的时候,会造成一定的性能消耗

请问: 目前这种方式的主要出发点是什么? 相比于每次访问时再通过反射获取有什么优劣呢? 谢谢!

UltraREX avatar Jun 02 '22 08:06 UltraREX