当应用程序使用几分钟后,它会慢慢增加Used记忆值和减少Free记忆值。几分钟后应用程序变得非常慢。为什么不释放内存。
系统配置 :
- CPU:Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz(处理器数量:4 / CPU 核心数量:8)
- 内存:30GB
- 操作系统:CentOS-7
应用程序配置:
- java版本“1.8.0_171”——构建1.8.0_171-b11
- 阿帕奇-tomcat-7.0.55
雄猫设置
释放-h命令
顶部命令
.
.
Used内存值显示已占用 12 GB 以及Free内存值显示 600 MB 可用空间。我已经执行了多个并发用户搜索并运行jcmd命令生成heapdump.hprof,分析内存使用情况,观察到heapdump文件大小不超过600MB。
已用内存为 12 GB,堆转储为 600 MB - 我不知道为什么内存没有释放或释放。
任何人都可以建议有关如何设置/配置以提高特定硬件配置的内存使用率的任何读物。
您面临的问题是内存泄漏 https://en.wikipedia.org/wiki/Memory_leak
它是什么?
在计算机科学中,内存泄漏是一种资源泄漏,
当计算机程序错误地管理内存分配时发生
以这种方式,不再需要的内存不会被释放。
如上所述:不再需要的内存不会被释放
什么时候发生?
在取消分配分配的堆之前,ref
分配的堆被释放。whileref
如果堆被释放,那么垃圾收集将无法寻址分配的堆。换句话说,它将无法找到孤立的分配的堆。
长时间运行的程序发生内存泄漏会导致什么?
该程序会消耗RAM、CPU资源
它怎么吃 ?
节目不断分配RAM。但是,没有解除分配因此,已用内存变高并导致运行缓慢和滞后。
它是如何固定的?
如果你正在使用安卓工作室 , The 智能感知它的特点是,将通过以下方式对代码中可能存在内存泄漏的部分进行签名黄色突出显示如果您将鼠标悬停在突出显示上,它将弹出并向您显示警告,说明为什么它可能会导致问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)