Java之 Jconsole的使用

使用

之前分享过JVM的基础结构以及如果Jconsole去直观的去查看,现在我们更细的了解一个Jconsole的监控案例。

        BigInteger[] pArr = new BigInteger[30000];
        pArr[0] = new BigInteger("0");
        pArr[1] = new BigInteger("1");
        for (int i = 2; i < 30000; i++) {
            pArr[i] = pArr[i - 1].add(pArr[i - 2]);
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                e.printStackTrace();

            }
            System.out.println("第" + i + ":" + pArr[i]);
        }
process_class.png
process_code_cache.png
process_compressed_class.png
process_eden_space.png
process_jvm.png
process_metaspace.png
process_old_generation.png
process_profile.png
process_survivor_space.png
process_thread.png

问题

一次次的堆内存使用量为什么有较大幅度的变化?

Old Genarition 现象能说明什么?

Eden Space 为什么会越往后越密集?

Survivor Space 为什么会下降?

修改

        BigInteger temp1 = new BigInteger("0");
        BigInteger temp2 = new BigInteger("1");
        BigInteger temp3 = new BigInteger("0");
        for (int i = 2; i < 10000; i++) {
            temp3 = temp2;
            temp2 = temp1.add(temp2);
            temp1 = temp3;
            try {
                Thread.sleep(5);
            } catch (Exception e) {
            }
            System.out.println("第" + i + ":" + temp2);
        }

参考

Jconsole—JVM监控性能的利器(1 本地监控)
jconsole工具使用
使用jconsole分析内存情况-JVM

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容