我正在进行的项目相当大。在试图获得加载时间编织为这个春天项目工作时,我被指示使用spring-instrument javaagent以及aspectjweaver javaagent。不过,我注意到在使用aspectjweaver代理时,我的发布时间增加了4-6倍。我还可以看到来自ContextOverridingClassLoader的4-6次相同的编织消息。为什么使用aspectjweaver javaagent进行加载时编织对我来说太慢?
但是,如果我删除了aspectjweaver,并且只使用spring-instrument,我注意到我的启动时间显着减少,每个连接点只有一个编织消息来自AppClassLoader。
唯一的问题是某些特定的类没有编织(我发现这是由于在类加载器加载错误类之前尚未加载spring应用程序上下文,因为spring是启用织)。我已经通过创建一个自定义的javaagent来找到解决方案,它可以像spring-instrument一样进行编织,只有它在premain而不是应用程序上下文加载时才这样做。它现在编织所有的课程,并在合理的时间。
但是,我不想走这条怪异的路,因为我只能假设这两个代理人的设计方式是有原因的。
我想知道是否有其他人看到与aspectjweaver javaagent类似的问题,并且如果有人可能知道为什么该代理比仅使用弹簧工具更慢。