我的问题是如何从堆中释放内存?
“我的c盘有超过40 GB的空间,但现在它显示不到3 GB” C:\ Windows \ system32> java -XX:+ PrintFlagsFinal -version | findstr / i“HeapSize PermSize ThreadStackSize”
intx CompilerThreadStackSize = 0
{pd product}
uintx ErgoHeapSizeLimit = 0
{product}
uintx HeapSizePerGCThread = 87241520
{product}
uintx InitialHeapSize := 62914560
{product}
uintx LargePageHeapSizeThreshold = 134217728
{product}
uintx MaxHeapSize := 987758592
{product}
intx ThreadStackSize = 0
{pd product}
intx VMThreadStackSize = 0
{pd product}
java版“1.8.0_77” Java(TM)SE运行时环境(版本1.8.0_77-b03) Java HotSpot(TM)64位服务器VM(版本25.77-b03,混合模式)
C:\ Windows \ System32下> java -XX:+ PrintFlagsFinal -Xms512m -Xmx1024m -Xss512k -XX:PermSize = 64m -XX:MaxPermSize = 128m -version | grep -iE'HapSize | PermSize | ThreadStackSize'
在堆中分配内存之后,每次在c盘中分配空间时都使用jmeter运行程序.. @Peter Lawrey
答案 0 :(得分:0)
当您的磁盘空间填满时,您需要找到您不需要的文件并进行清理。
如果您已经生成了堆转储,我建议您在程序运行的目录中查找一个大文件。
BTW当一个程序退出时,它所使用的所有资源都被释放,除了它留下的任何文件。
答案 1 :(得分:0)
使用TreeSize Free工具并使用Administrator打开它并从那里搜索java_.hprof文件并转到目录并从那里删除这些文件!!!