我也没有看到任何定量比较,所以这个答案可能还远远不够完整。
很难将 Castle 或 Unity 与 PostSharp 的性能进行比较 - Castle 和 Unity通过动态代理使用运行时编织,而 PostSharp在编译阶段增加了开销。因此,如果性能对您来说至关重要,那么像 PostSharp 这样的编译解决方案总是更好。在运行时生成 AOP 代理意味着动态生成 IL 代码和大量反射使用。
因此,有意义的性能测试必须比较使用相同技术的解决方案 - 您可以尝试比较 Castle Dynamic Proxy 和 Unity Interception 代理实现。
我不太了解前者,但对于后者,仍然有三种不同的场景可以比较 - 透明代理(MarshalByRefObject)、接口代理和子类代理 - 每个都有自己的一组使用场景和自己的性能开销。据我所知,透明代理非常慢,不应该在 AOP 场景中使用。接口和子类型代理会动态生成一些 IL,这与 Castle DP 所做的相同,因此我相信差异不应该那么大(但同样,这里没有定量结果)。