当我在J表的堆中分配新的内存时,发生了内存泄漏



我的问题是我应该如何从堆中释放内存?

"我的c盘有超过40gb的空间,但现在显示不到3gb "C:Windowssystem32>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 version "1.8.0_77"Java(TM) SE运行环境(build 1.8.0_77-b03)Java HotSpot(TM) 64位Server VM (build 25.77-b03, mixed mode)

C: Windows system32系统>java -XX:+PrintFlagsFinal -Xms512m -Xmx1024m -Xss512k -XX:PermSize=64m -XX:MaxPermSize=128m -version | grep -iE 'HeapSize|PermSize|ThreadStackSize'

当在堆中分配内存后,我使用jmeter每次在c驱动器中分配空间时运行程序。 @Peter Lawrey

当您的磁盘空间填满时,您需要找到您不需要的文件并清理它们。

如果您已经生成了堆转储,我建议您在程序运行的目录中查找一个大文件。

当程序退出时,它所使用的所有资源都被释放,除了它留下的任何文件。

使用TreeSize Free工具并使用Administrator打开它并搜索java_。hprofs文件从那里,去目录和删除这些文件从那里!!

最新更新