Sta*_*y A 7 .net aop castle-windsor
我正在考虑使用Castle Windsor的Interceptor来缓存数据以帮助扩展asp.net网站.
有没有人对此有任何想法/经验?
轻微澄清:我的目的是使用Windsor拦截"昂贵"的调用并委托MemCacheD或Velocity(或其他分布式缓存)进行缓存.
嘿,我们使用了 Castle Windsor 拦截器,基于这篇文章:http://www.davidhayden.com/blog/dave/archive/2007/03/14/CastleWindsorAOPPolicyInjectionApplicationBlock.aspx以及上面提到的。
我发现整个事情非常简单,而且这是一种非常优雅的 AOP 方式。然而....
但要小心表演。使用拦截会创建一个动态代理,这肯定会减慢速度。根据我们使用 500 个节点计算场的基准测试,我们发现通过在 Windsor 中使用拦截,性能下降了约 30%,这也超出了我们在拦截内所做的事情(本质上是记录方法调用和传递到我们的方法的参数) 。简单地删除拦截就可以大大加快整个应用程序的速度。
小心不要让昂贵的电话变得非常昂贵。:) 如果我是你,我会考虑在不同级别进行缓存,可能是通过实现 IRepository 类型模式,然后在适当的情况下使用各种缓存策略来支持它。
祝你好运,
——
马特.
| 归档时间: |
|
| 查看次数: |
5058 次 |
| 最近记录: |