【发布时间】:2018-07-13 09:59:24
【问题描述】:
我的 Vaadin 8 + Spring Boot 应用程序存在性能问题。
当我在长时间不使用后启动应用程序时,例如一晚后,需要几分钟才能从数据库中获取响应。
我有以下应用设置:
spring.datasource.max-active=10
spring.datasource.initial-size=5
spring.datasource.max-idle=5
spring.datasource.min-idle=1
spring.datasource.test-while-idle=true
spring.datasource.test-on-borrow=true
spring.datasource.validation-query=SELECT 1
spring.datasource.time-between-eviction-runs-millis=5000
spring.datasource.min-evictable-idle-time-millis=60000
如果没有test-while-idle、validation-query 和test-on-borrow,我什至无法重新连接到数据库,但性能问题仍然存在。
【问题讨论】:
-
首先,您应该隔离问题。如果您怀疑数据库调用很慢,请在您的应用程序中添加计时日志。 Java 应用程序速度慢的另一个可能原因可能是内存泄漏,这将更频繁地调用垃圾收集并最终以 OutOfMemoryException 结束。在这种情况下,您可以在应用程序运行缓慢时打印 GC 日志或进行堆转储。
标签: java performance spring-boot vaadin