Java 如何阅读详细信息

Java 如何阅读详细信息,java,garbage-collection,Java,Garbage Collection,我有一个存储大量数据的java程序,一时兴起,我尝试使用以下VM参数运行它:-XX:+PrintGCDetails 在程序结束时,它会打印: Heap PSYoungGen total 238016K, used 100138K [0x00000000eaeb0000, 0x00000000fd460000, 0x0000000100000000) eden space 224640K, 38% used [0x00000000eaeb0000,0x00000000f0378dc

我有一个存储大量数据的java程序,一时兴起,我尝试使用以下VM参数运行它:-XX:+PrintGCDetails

在程序结束时,它会打印:

Heap
 PSYoungGen      total 238016K, used 100138K [0x00000000eaeb0000, 0x00000000fd460000, 0x0000000100000000)
  eden space 224640K, 38% used [0x00000000eaeb0000,0x00000000f0378dc0,0x00000000f8a10000)
  from space 13376K, 99% used [0x00000000fbd50000,0x00000000fca51a60,0x00000000fca60000)
  to   space 10240K, 0% used [0x00000000fca60000,0x00000000fca60000,0x00000000fd460000)
 PSOldGen        total 92608K, used 88569K [0x00000000c0c00000, 0x00000000c6670000, 0x00000000eaeb0000)
  object space 92608K, 95% used [0x00000000c0c00000,0x00000000c627e660,0x00000000c6670000)
 PSPermGen       total 64256K, used 64244K [0x00000000bba00000, 0x00000000bf8c0000, 0x00000000c0c00000)
  object space 64256K, 99% used [0x00000000bba00000,0x00000000bf8bd300,0x00000000bf8c0000)

我假设99%(和95%)的使用量表明我需要做一些调整。我只是不确定是什么。

前99%都很好:

来自空间13376K,99%已使用

年轻一代的GC就是这样工作的。小GC上的对象从伊甸园到幸存者空间(从空间到空间),大GC上的对象从幸存者到老一代

而第二个:

对象空间92608K,已使用95%

这是你应该担心的事情。根据您的日志,旧一代大约有100MB的空间,这通常太小,但取决于您执行的代码


您应该对您的程序进行更多测量以获得准确的结果,但似乎您正在创建一些长寿命的对象,这些对象在旧一代中堆积起来

您向JVM传递了哪些其他选项。这些信息对我们有很大帮助。您的应用程序运行时间长吗?除非您遇到一些问题,如较长的GC暂停或OOM异常,否则您不必担心。你有什么问题吗?