我正在使用反射從控制器和方法獲取授權屬性。HttpContext.Cache vs Reflection:哪個更有效?
因爲我需要一遍又一遍地得到這些信息,所以我想知道是否要更快地緩存它或者只是繼續使用反射來獲取它。
有什麼想法?
我正在使用反射從控制器和方法獲取授權屬性。HttpContext.Cache vs Reflection:哪個更有效?
因爲我需要一遍又一遍地得到這些信息,所以我想知道是否要更快地緩存它或者只是繼續使用反射來獲取它。
有什麼想法?
一般來說,當速度達到時反射並不會提供建議,但是您必須考慮開發一個真正有效的緩存的時間(線程安全,速度非常快,它爲您提供當前值而不是舊的不一致值)並進行調試。
很難判斷哪個架構能夠提供最佳性能,但是您可以輕鬆編寫一些測試,通過一組簡單案例對兩種不同情況進行計時。你可能會發現速度是相同的,或者它有很大的不同。無論哪種方式,你有你的答案。
這個答案有點晚,但我最近在項目中有一樣的想法,並最終使用下面的擴展方法做了緩存 GetOrCreate記得要鎖定字典,如果你這樣做的話。
相反,你可以使用一個ImmutableAVLTree使用lock-free strategy
最後,還有一些有用的工具來使用反射here
這是一個完整的框架的一部分,但你可以,如果這只是copy this bit of code你唯一需要的位。
我不確定是否因爲處理HttpContext.Cache而得到「開發緩存」的部分。你能進一步解釋嗎?謝謝。 – 2008-12-04 19:03:32