【发布时间】:2016-08-05 00:22:22
【问题描述】:
我目前正在用 Spring Boot 重写一个 Ruby on Rails 网络应用程序。此举的很大一部分是为了提高性能。
在开发应用程序时,当我在 IntelliJ 中点击运行时,第一个响应时间通常是 1 秒左右,我认为这是 JVM 启动,刷新后它会跳到 300 毫秒~ 然后 150 毫秒,4-5 个进一步请求,之后它在大多数情况下稳定在 50-75 毫秒。随机,但稍后我会再次收到 150 毫秒的响应。
作为一名 JVM 新手,我想知道在不同的响应时间中有哪些因素在起作用?哪个更接近我在生产中可以预期的标准“热”响应时间?我意识到我不太可能准确描述本地开发机器上的生产性能,但我想了解上面看到的差异,这样我至少可以更好地衡量影响我的增量更改的因素。
【问题讨论】:
-
这是在您本地工作站上的 intelliJ 中运行的,您担心 150 毫秒的响应时间?考虑到 intellij 正在使用大量内存并且正在执行大量任务、GC 等。
-
@ScaryWombat 一点也不担心,所有上述响应时间都比他们要替换的应用程序快几个因素,并且在可接受的范围内。只是想更好地了解所看到的变化发生了什么。
-
当然,您的工作站上还有哪些其他任务? Linux 还是 Windows? GC?交换?其他系统io?
-
@ScaryWombat 我正在运行 OSX。从 150 毫秒到 50-75 毫秒的“热身”模式似乎是一致的,尽管每次我运行应用程序时都不管我在做什么。我猜这很正常,如果是这样,那么几分钟后它会在没有请求的情况下再次“冷却”吗?这肯定会解释我所看到的。
标签: java spring spring-boot jvm