用 verbose GC 分析 IBM WebSphere Portal 的内存问题
2010-06-23 00:00:00 来源:WEB开发网核心提示: 使用了 Verbose GC (–Xverbosegc)有一点非常重要,那就是即便我们为 JVM 分配了 1024 M,用 verbose GC 分析 IBM WebSphere Portal 的内存问题(5),正如我们在上述的 verbose GC 片段内所做的那样,但这并不意味着
使用了 Verbose GC (–Xverbosegc)
有一点非常重要,那就是即便我们为 JVM 分配了 1024 M,正如我们在上述的 verbose GC 片段内所做的那样,但这并不意味着我们一定会使用或我们永远不会使用这全部的 1024 M。例如,在这个 verbose 片段,我们只使用了 616,233,472 字节。
JVM 先是被分配最少的 256 M 并将该空间付诸使用。如图 1 所示,整个 heap 的 1024 M 被放置起来备用(整个条),只有最初的 256 M 被分配使用,如图中阴影区域所示。
图 1. heap 的示意图
由于只有 256 M 可用,因此 JVM 会先用运行程序 programToRun 所需的这些对象填充这最初的 256 M。这些对象会被逐渐添加到这个空间,直到没有足够的连续空间能满足将下一个对象放在 heap 上的要求(参见图 2)。
图 2. 加载了不同大小的对象后的 Heap
这时,下一个对象开始请求这个 heap 上的空间,但已经没有足够的连续空间能够满足这一请求(参见图 3)。
图 3. 请求对象的示意图
这个请求发生时,JVM 以 action=1 运行一个 GC,示意图会发生变化,如图 4 所示。
更多精彩
赞助商链接