HttpContext.Cache vs Reflection:哪个更有效?

时间:2008-12-04 16:00:05

标签: asp.net-mvc

我正在使用反射从控制器和方法获取授权属性。

因为我需要反复获取这些信息,我想知道缓存它是否更快,或者只是继续使用反射来获取它。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

总的来说,当得到速度时,不建议使用Reflection,但是你必须考虑开发一个真正有效的缓存的时间(线程安全,非常快,它给你当前值而不是旧的不一致值并调试它。

很难说哪种架构能够提供最佳性能,但您可以轻松地编写一些测试,通过一小组简单案例来计算两种不同场景的时间。您可能会发现速度完全相同,或者它显着不同。无论哪种方式,你都有答案。

答案 1 :(得分:0)

这个答案有点晚了但是我最近对项目中的一位有同样的想法,最后使用以下扩展方法进行缓存 GetOrCreate如果你这样做,请记得锁定字典。

相反,您可以使用ImmutableAVLTree

lock-free strategy

最后,有一些有用的实用程序可以使用反射here

它是完整框架的一部分,但如果这是您需要的唯一内容,则可以copy this bit of code