大家好,有个问题请教一下各位:
1、java代码,生成一百万条数据消耗100m内存,为什么生成数据结构是一样的50万条数据消耗的内存的65m,理论上不是应该减半吗,即消耗50m内存,不应该有这么大偏差吧;如果存在偏差,偏差在哪里?
2、对上述生成的一百万数据进行排序,排序消耗内存大概是4-5M,这个消耗是不是小了点?
3、有什么工具可以正确监控java方法执行时消耗多少内存?
大家踊跃讨论噢,谢了,各位。
大家好,有个问题请教一下各位:
1、java代码,生成一百万条数据消耗100m内存,为什么生成数据结构是一样的50万条数据消耗的内存的65m,理论上不是应该减半吗,即消耗50m内存,不应该有这么大偏差吧;如果存在偏差,偏差在哪里?
2、对上述生成的一百万数据进行排序,排序消耗内存大概是4-5M,这个消耗是不是小了点?
3、有什么工具可以正确监控java方法执行时消耗多少内存?
大家踊跃讨论噢,谢了,各位。
1、jvisualvm 在运行过程中 进行堆转储
2、jmap 打印堆
3、垃圾回收执行的不可预测性,即何时执行是不确定的,所以数据可能不是很准确。