我的应用程序越来越大,Spring的启动时间约为20秒。对于生产用途来说,这很好,但是对于开发来说,这是一个很大的痛苦。

有什么好的概要分析工具或方法可以为我提供准确的信息,以找出所需的时间?也许这是我可以优化的东西?

我的应用程序是一个相当典型的Spring/Hibernate Web应用程序。大约有50个数据库表和几百个bean(例如200-300。。。我没有数)。有几个@Configurable bean。大量的组件扫描。我也在使用Spring Security。

我在log设置中使用log4j进行了一些初步配置分析。以下是一些需要一些时间的事情:

  • 信息DefaultListableBeanFactory:555-预先实例化单例- 2秒
  • INFO SessionFactoryImpl:202-建立 session 工厂- 2秒
  • 信息HibernateTransactionManager:415-为HibernateTransactionManager使用Hibernate SessionFactory的数据源[com.mchange.v2.c3p0.ComboPooledDataSource ......]- 7秒

  • 有几件事情最多需要0.5到1秒,但是这3件是最大的事情。

    最佳答案

    您还可以使用Spring Insight。

    07-25 21:09