java方法消耗内存统计

大家好,有个问题请教一下各位:

1、java代码,生成一百万条数据消耗100m内存,为什么生成数据结构是一样的50万条数据消耗的内存的65m,理论上不是应该减半吗,即消耗50m内存,不应该有这么大偏差吧;如果存在偏差,偏差在哪里?

2、对上述生成的一百万数据进行排序,排序消耗内存大概是4-5M,这个消耗是不是小了点?

3、有什么工具可以正确监控java方法执行时消耗多少内存?

大家踊跃讨论噢,谢了,各位。

3个回答

1、jvisualvm 在运行过程中 进行堆转储
2、jmap 打印堆

3、垃圾回收执行的不可预测性,即何时执行是不确定的,所以数据可能不是很准确。

用JDK自带的jconsole.exe或者是jvisualvm.exe监控应用程序的内存情况。这两个都在jdk的bin目录下。
你说的这个情况有可能是垃圾回收自动执行了,由于你不知道什么时候垃圾回收自己就执行了,所以看到的数据会有偏差。

安装JDK 在bin目录找到jconsole.exe,可以查看某java应用的消耗情况!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐