用Visual VM sampler查看java进程,如图所示
为何char[]有将近200万个?而且每个大小400多字节
int[]的大小则将近1KB
而用其heap dump生成文件然后再load看则是
两者数据为何差距那么大?
用Visual VM sampler查看java进程,如图所示
为何char[]有将近200万个?而且每个大小400多字节
int[]的大小则将近1KB
而用其heap dump生成文件然后再load看则是
两者数据为何差距那么大?
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
1 回答2.1k 阅读✓ 已解决
通常考虑,字符串对象中就有一个 char[]数组,其他对象中也可能封装char[]数组,你可以检查一下你的String对象有多少个,算上其他可能封装char[]数组的对象,也差不多这个数值了。
同理int[]也是。
另外,不推荐用VisualVM查看heap dump,基本上没什么太好的帮助。推荐使用MemoryAnalyzer(MAT)查看堆dump