在C#中,我用属性标记了一些类的属性,并且我使用反射来查找这些属性,以便对它们执行获取和设置.然而,我发现以这种方式获得/设置反射大约是POCO获取/设置的10倍.除了放弃上述基本场景以使用替代技术之外,是否有任何记录的技巧可以使这种性能显着提升,例如某种缓存技术?
超越什么casperOne说(包括有关检查,这是瓶颈位),你会发现它非常有帮助的getter/setter方法转换成代表(一Func<T>
和Action<T>
分别为getter和setter)使用Delegate.CreateDelegate.这可以产生巨大的差异,并且不是非常困难.如果您已经要缓存PropertyInfo,只需缓存委托对.
我有一个博客帖子大约Delegate.CreateDelegate -移植Protocol Buffers的(可反射重于次),当我第一次使用它的愤怒.在这种情况下它帮了很多忙.