当前位置: 首页 > 知识库问答 >
问题:

Tomcat中的内存分配和GC

昝涛
2023-03-14

我正在使用带有Spring框架的tomcat-7和java-8。我刚刚在webapps中部署了一个应用程序。之后,我监控了Visual alvm中的内存,下面是截图。

tomcat上没有命中,使用的堆正在增加,并且在执行了限制GC之后。我想知道,如果这是正常行为还是我的Web应用程序有问题。

共有1个答案

宋洲
2023-03-14

是的,这是一个健康的应用程序内存使用应该是什么样子。

双锯齿模式的原因是JVM需要在堆上分配内存,因为新对象是作为正常程序执行的一部分创建的。这些对象大多是短期的,很快就会变成垃圾。这些短命物体由一个称为“次要GC”的收集器收集,代表锯齿上的小水滴

https://plumbr.eu/blog/memory-leaks/memory-leaks-fallacies-and-misconceptions

 类似资料:
  • 我想了解为什么多次动态分配调用的数据比直接在代码中指定的或通过的单个调用分配的数据使用如此多的内存。 例如,我用C编写了以下两个代码: 测试1.c:int x用malloc分配 我在这里没有使用free来保持简单。当程序等待交互时,我查看另一个终端中的顶级功能,它向我显示了以下内容: test2. c: int x不是动态分配的 顶部显示: 我还编写了第三个代码,其结果与test2相同,我在tes

  • 我在运行OSX 10.13.6的Mac上有PHP版本7.2.9。如果我加载phpinfo(),我在Safari中看到memory_limit=256M。然而,当我看php.ini(/usr/本地/php5/lib/php.ini)memory_limit=128M。这种差异的原因是什么——显然限制是在其他地方设定的,但是在哪里?我需要增加内存限制

  • 问题内容: 类B继承了类A。现在,当我们创建类型B的对象时,为B分配的内存是多少?是否包括A和B或任何其他内存分配过程? 问题答案: 当创建对象B时,假设调用了默认构造函数 然后,JVM分配具有更多或更少内容的对象: 在B中显式声明的每个字段都有足够的内存(每个字段通常大约4-8字节,但是类型和主机系统之间有很大差异) 对于A及其祖先继承的每个最终字段,都有足够的内存 足够的内存来包含对调度向量的

  • 问题内容: 当您知道on上对象/项目的确切数量时,我非常想知道哪种内存分配方法对性能(例如,运行时间)有利,这对性能有好处。少量对象(少量内存)和大量对象(大量内存)的成本。 与 请告诉我。谢谢。 注意:我们可以对此进行基准测试,并且可能知道答案。但是我想知道解释这两种分配方法之间性能差异的概念。 问题答案: 静态分配将更快。静态分配可以在全局范围和堆栈上进行。 在全局范围内,静态分配的内存内置在

  • 我有一个关于java如何处理未使用变量的问题。 假设我有以下代码: 那么我就不会在代码中使用notUsedVariable。该变量是否会被存储,或者java是否足够聪明,可以在编译时忽略该变量? 谢谢

  • The allocation mechanisms within APR have a number of debugging modes that can be used to assist in finding memory problems. This document describes the modes available and gives instructions on activ