gpt4 book ai didi

c# - AOP 性能开销

转载 作者:太空狗 更新时间:2023-10-29 19:41:52 26 4
gpt4 key购买 nike

我一直在寻找一些关于典型 AOP 任务的性能测试。不过我一直没找到,你能帮帮我吗?我主要考虑 CaSTLe、Unity 和 PostSharp,尽管它对我的项目来说可能太贵了。

最佳答案

我也没有看到任何定量比较,所以这个答案可能远未完成。

很难将 CaSTLe 或 Unity 的性能与 PostSharp 进行比较 - CaSTLe 和 Unity 使用 runtime weaving通过动态代理和 PostSharp 增加开销 at compile stage .因此,如果性能对您至关重要,那么像 PostSharp 这样的编译解决方案总是会更好。在运行时生成 AOP 代理意味着动态生成 IL 代码和大量反射使用。

因此,有意义的性能测试必须比较使用相同技术的解决方案 - 您可以尝试比较 CaSTLe Dynamic Proxy 和 Unity Interception 代理实现。

我不太了解前者,但如果是后者,仍然需要比较三种不同的场景 - 透明代理 (MarshalByRefObject)、接口(interface)代理和子类化代理 - 每个都有自己的一组使用场景及其自身的性能开销。据我所知,透明代理非常慢,不应该在 AOP 场景中使用。接口(interface)和子类型代理会动态生成一些 IL,这与 CaSTLe DP 所做的相同,所以我认为差异不应该太大(但同样,这里没有定量结果)

关于c# - AOP 性能开销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4583767/

26 4 0
文章推荐: c# - WPF 中的自定义内容控件
文章推荐: c++ - std::vector 成员 C++ 的总和