jvm内存分配的问题

Charcla 2018-12-07 08:51:57
这里我创建了三个2m的对象,为什么这里新生代占用了7000多k?
...全文
193 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Charcla 2018-12-14
  • 打赏
  • 举报
回复
引用 2 楼 northwesternwind 的回复:
[quote=引用 1 楼 northwesternwind 的回复:] jvm初始化以后自动建立的一些对象会占用额外的空间。你可以用下面命令查看。比如在你调用分配函数前后运行命令:

jmap -heap  <pid>
jmap -histo:live <pid>

比如我的jdk 1.8.151 在运行testA,llocation之前:

Heap Usage:
PS Young Generation
Eden Space:
   capacity = 8388608 (8.0MB)
   used     = 1178224 (1.1236419677734375MB)
   free     = 7210384 (6.8763580322265625MB)
   14.045524597167969% used
From Space:
   capacity = 1048576 (1.0MB)
   used     = 0 (0.0MB)
   free     = 1048576 (1.0MB)
   0.0% used
To Space:
   capacity = 1048576 (1.0MB)
   used     = 0 (0.0MB)
   free     = 1048576 (1.0MB)
   0.0% used
PS Old Generation
   capacity = 10485760 (10.0MB)
   used     = 0 (0.0MB)
   free     = 10485760 (10.0MB)
   0.0% used

1627 interned Strings occupying 148736 bytes.
[/quote] 解答了,很感激
northwesternwind 2018-12-14
  • 打赏
  • 举报
回复
引用 1 楼 northwesternwind 的回复:
jvm初始化以后自动建立的一些对象会占用额外的空间。你可以用下面命令查看。比如在你调用分配函数前后运行命令:

jmap -heap <pid>
jmap -histo:live <pid>


比如我的jdk 1.8.151 在运行testA,llocation之前:

Heap Usage:
PS Young Generation
Eden Space:
capacity = 8388608 (8.0MB)
used = 1178224 (1.1236419677734375MB)
free = 7210384 (6.8763580322265625MB)
14.045524597167969% used
From Space:
capacity = 1048576 (1.0MB)
used = 0 (0.0MB)
free = 1048576 (1.0MB)
0.0% used
To Space:
capacity = 1048576 (1.0MB)
used = 0 (0.0MB)
free = 1048576 (1.0MB)
0.0% used
PS Old Generation
capacity = 10485760 (10.0MB)
used = 0 (0.0MB)
free = 10485760 (10.0MB)
0.0% used

1627 interned Strings occupying 148736 bytes.


northwesternwind 2018-12-14
  • 打赏
  • 举报
回复
jvm初始化以后自动建立的一些对象会占用额外的空间。你可以用下面命令查看。比如在你调用分配函数前后运行命令:

jmap -heap <pid>
jmap -histo:live <pid>

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧