Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
由于 AspecJ 为原始代码添加了更多逻辑,我想知道将 AspectJ 应用于不同场景的开销是多少?
有没有这方面的基准?
非常感谢!
没有通用的方法来回答这个问题。这实际上取决于您的切入点的范围有多宽或多窄,以及在您的建议中执行的代码有多昂贵。通常开销很小,除非您使用动态确定的切入点和昂贵/缓慢的建议代码的非常不幸的组合来编织到目标连接点。
想象一下,您将某个代码片段添加到许多方法中。开销取决于代码段、将代码段添加到的位置数量以及添加代码的所有方法的调用次数。这就是方面编织器所做的:将编译后的字节码编织到您的类中。唯一的区别是它是自动完成的,您不必手动将代码段分散在整个代码库中。