使用Spring应用程序上下文的计时

时间:2013-06-07 12:18:04

标签: java spring

我目前正在尝试追踪性能问题,并且我发现在您从ApplicationContext请求bean的代码中花费了大量时间:

ApplicationContext.getBean(String beanName);

您是否知道是否可以在Spring中打开任何调试或日志信息,以便我可以看到从此调用中实例化的所有对象以及创建它们的时间?

我一直在尝试使用Yourkit进行分析,但操作总共只需要1.4秒而且只在第一次调用时,所以Yourkit似乎很难接受这样的短暂停留,一次性调用。

这就是我走向伐木路线的原因。

1 个答案:

答案 0 :(得分:3)

Spring使用log4j,因此您可以将日志级别设置为debug并查看所获得的内容。这将是很多输出。我建议不要将它记录到控制台 - 将其写入文件。

如何得出这个结论?您是否使用Visual VM分析您的应用程序,并安装了所有插件?

我敢打赌,应用环境不是问题。如果在app环境中花费的时间很长,那么当Spring正在读取和解析配置,实例化和连接bean时,它应该只是在启动时。一旦完成,费用将在您的应用程序的整个生命周期内摊销。对于大多数网络应用来说,这是一个启动成本,而不是用户使用您的网站时的体验反映。

它更有可能出现在您的代码中。通过不全面的观点确保你不会被误导。