Java 卡在弹簧性能问题上
我有点被一个问题困住了。我有一个Spring+Hibernate应用程序,在过去的几天里,它的表现非常奇怪 通常,即使在调试模式下,它也会引导大约15秒 几天后,在没有显示任何重大错误或问题的情况下,它开始运行两次,如果不是三次那么慢的话 我认为问题可能出在Tomcat上,但即使在我运行我编写的一系列单元测试时,它们的速度还是惊人地慢(对于初始上下文引导,我们在测试+20秒时谈论的是8秒以上)。我使用一个本地的PostgreSQL数据库进行测试,这通常不是很糟糕(测试大约一秒钟) 我被卡住了。我知道我做的最后一件事是在@Controller类上添加对@Transactional的支持。这可能是原因吗?我对此表示怀疑,因为当我将事务性修改部署到稳定服务器并重新启动它时,它的运行速度与以前一样快Java 卡在弹簧性能问题上,java,performance,spring,hibernate,tomcat,continuous-integration,Java,Performance,Spring,Hibernate,Tomcat,Continuous Integration,我有点被一个问题困住了。我有一个Spring+Hibernate应用程序,在过去的几天里,它的表现非常奇怪 通常,即使在调试模式下,它也会引导大约15秒 几天后,在没有显示任何重大错误或问题的情况下,它开始运行两次,如果不是三次那么慢的话 我认为问题可能出在Tomcat上,但即使在我运行我编写的一系列单元测试时,它们的速度还是惊人地慢(对于初始上下文引导,我们在测试+20秒时谈论的是8秒以上)。我使用一个本地的PostgreSQL数据库进行测试,这通常不是很糟糕(测试大约一秒钟) 我被卡住了。我
我完全被卡住了你知道,根据你的描述,我们只能猜测。显然,如果您正在使用,后续构建的构建时间将揭示哪些代码更改可能是原因。如果识别代码,诊断就会简单得多 很有可能它不是由代码更改引起的,而是由环境更改引起的。例如:
- Spring在引导过程中获取一些外部资源(XML模式、DTD等)
- 存在一些额外的网络开销(路由器/交换机重新配置、防火墙)
- 数据库是碎片化的,或者速度较慢。试着抽真空
- 在引导过程中捕获少量堆栈跟踪。不需要全面的评测,我打赌只有一个阻塞/等待操作会减慢速度
- 启用您可以使用的每个日志记录语句每个。调查应用程序的哪些部分运行缓慢
- Spring在引导过程中获取一些外部资源(XML模式、DTD等)
- 存在一些额外的网络开销(路由器/交换机重新配置、防火墙)
- 数据库是碎片化的,或者速度较慢。试着抽真空
- 在引导过程中捕获少量堆栈跟踪。不需要全面的评测,我打赌只有一个阻塞/等待操作会减慢速度
- 启用您可以使用的每个日志记录语句每个。调查应用程序的哪些部分运行缓慢
- 试着检查启动日志,看看什么东西看起来慢一些李>
- 你能试着启动一个旧版本的应用程序,看看它是否更快李>
- 你能看到现在哪些测试比较慢吗
- 试着检查启动日志,看看什么东西看起来慢一些李>
- 你能试着启动一个旧版本的应用程序,看看它是否更快李>
- 你能看到现在哪些测试比较慢吗
- 您知道,根据您的描述,我们只能猜测。显然,如果您正在使用,后续构建的构建时间将揭示哪些代码更改可能是原因。如果识别代码,诊断就会简单得多
很有可能它不是由代码更改引起的,而是由环境更改引起的。例如: