我们的上下文init从60秒跳到大约15分钟。在缓慢和快速的情况下,它最终都会成功启动。无论哪种方式都没有致命的错误。是否有特定的日志记录设置,甚至建议的类来设置断点(或添加断点记录)?缓慢的上下文初始化
我已经找到那个行为开始的版本,但不清楚是什么导致它需要更长的时间。我在整个DefaultListableBeanFactory中设置了断点。这是一个很大的应用程序,所以调用堆栈在获取和创建bean时已经有数百年的历史了,但是将其与之前的修订版本(快速完成)进行比较显示出类似的性质。在缓慢和快速修订之间没有什么不寻常的事情发生。
我已经在随机点通过“缓慢部分”暂停执行,并且堆栈跟踪看起来很合理,根据需要实例化新的bean,尽可能设置属性(这可能会导致更多的递归doCreateBean调用等) 。
我还没有打扰建立一个分析器,但怀疑它会有用。慢版本花费在其中的代码(bean factory,context init),当然也是快速修改其花费最多的代码。
Spring使用log4j,你打开调试日志? – 2012-07-26 23:56:17
是的,在org.springframework上调试。在一分钟内,我有几百兆字节的日志。我已经搜索了最高端,作为一个人,我发现很难消化任何有用的东西。 – 2012-07-27 16:44:38
尝试一个利润可能是有用的,所以你可以分析什么是慢的部分占用的时间 – 2012-07-27 17:03:04