java - 陷入 Spring 性能问题

标签 java performance spring hibernate tomcat

我有点卡在一个问题上了。我有一个 Spring + Hibernate 应用程序,最近几天表现得很奇怪。

通常,即使在 Debug模式下,它也会引导大约 15 秒。

几天后,在没有显示任何重大错误或问题的情况下,它开始运行两倍,如果不是三倍慢的话。

我认为问题可能出在 Tomcat 中,但即使我运行了我编写的一系列单元测试,它们的运行速度也出奇地慢(我们说测试需要 8 秒以上 + 初始上下文引导需要 20 秒) .我使用本地 PostgreSQL 数据库进行测试,通常情况下还不错(测试大约一秒钟)

我卡住了。我知道我做的最后一件事是在我的@Controller 类上添加对@Transactional 的支持。这可能是原因吗?我怀疑,因为当我将事务修改部署到稳定服务器并重新启动它时,它运行得和以前一样快。

我完全卡住了

最佳答案

您知道,根据您的描述,我们只能猜测。显然,如果您使用的是 ,后续构建的构建时间将揭示哪些代码更改可能是原因。如果您识别代码,诊断会简单得多。

很可能它不是真正由代码更改引起的,而是由环境变化引起的。例如:

  • Spring 在 Bootstrap 上获取一些外部资源(XML 模式、DTD 等)
  • 有一些额外的网络开销(路由器/交换机重新配置、防火墙)
  • 数据库支离 splinter 或运行缓慢。尝试吸尘

调查:

  • 在 Bootstrap 期间捕获少量堆栈跟踪。不需要全面的分析,我敢打赌只有一个阻塞/等待操作会减慢速度
  • 尽可能启用每个日志记录语句。 每个。调查您的应用程序的哪些部分运行缓慢。

关于java - 陷入 Spring 性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9964408/

相关文章:

PHP 重定向速度慢;花费很长时间

performance - MPI_Send/Recv 和 MPI_Scatter/Gather 的比较

Java Derby DB 错误 'Exception in thread "索引统计线程 "' and "无法获取 JDBC 连接”错误

java - 如何在java中访问文件系统?

java获取给定子文件夹的绝对路径

java - 该方法如何推断 <T> 的类型

java - JMS 临时队列丢弃第一条消息

java - 是否有一个设计良好、维护良好的 Java 决策树学习库?

java - 比 DecimalFormat.format() 更快的替代方法?

java - Spring Stomp SimpUserRegistry 匿名用户