gpt4 book ai didi

spring - Spring (Kotlin) 应用程序运行时的内存消耗行为

转载 作者:行者123 更新时间:2023-12-04 07:16:52 25 4
gpt4 key购买 nike

我用 Kotlin 和 Coroutine 编写了一个 Spring Boot 应用程序。它利用 Spring react 堆栈(Webflux)。
在查看运行时性能时,我有点被宠坏了。
enter image description here
该图显示了一段时间内的内存和 CPU 消耗。
一开始,我运行了一个渗透测试,导致 CPU 使用率高,内存不断增加。让我感到困惑的是,即使应用程序空闲,内存使用量也不会减少。
这是正常行为还是应用程序有问题?

最佳答案

Is this normal behaviour or is there something wrong with the application?


没有更多的信息,就不可能说出来。
这可能是正常行为。 JVM 中的内存由 garbage collection 释放.垃圾收集器清理不再使用的对象。它有自己的规则来决定何时以及如何做到这一点。特别是,它会在应用程序需要时尝试释放内存。如果应用程序空闲并且不需要任何内存来分配新对象,垃圾收集器可能不会运行。
另一方面,可能是您的应用程序仍然持有对某些数据的引用,以防止它被垃圾收集。如果您的应用程序中有任何变量或数据结构仍保留对对象的引用,则不会对该对象进行垃圾回收。随着时间的推移,这最终意味着垃圾收集器将无法释放任何新内存并且应用程序将崩溃。
如果您想确定,您应该尝试多次运行您的测试。如果您的应用程序运行良好,您会看到内存图在堆开始变满时立即下降,然后又逐渐上升。这会导致 characteristic "sawtooth"内存使用图。

关于spring - Spring (Kotlin) 应用程序运行时的内存消耗行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68714326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com