2021-05-14 00:51:47 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
下面使用`vmtool`命令查找jvm对象。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 查找jvm里的字符串对象
|
|
|
|
|
|
2021-05-14 01:00:50 +08:00
|
|
|
|
`vmtool --action getInstances --className java.lang.String`{{execute T2}}
|
|
|
|
|
|
2021-05-14 00:51:47 +08:00
|
|
|
|
```bash
|
|
|
|
|
$ vmtool --action getInstances --className java.lang.String
|
|
|
|
|
@String[][
|
|
|
|
|
@String[Sorry, deque too big],
|
|
|
|
|
@String[head=%d tail=%d capacity=%d%n],
|
|
|
|
|
@String[elements=%s%n],
|
|
|
|
|
@String[sun/nio/ch/IOVecWrapper],
|
|
|
|
|
@String[40252e37-8a73-4960-807e-3495addd5b08:1620922383791],
|
|
|
|
|
@String[40252e37-8a73-4960-807e-3495addd5b08:1620922383791],
|
|
|
|
|
@String[sun/nio/ch/AllocatedNativeObject],
|
|
|
|
|
@String[sun/nio/ch/NativeObject],
|
|
|
|
|
@String[sun/nio/ch/IOVecWrapper$Deallocator],
|
|
|
|
|
@String[Java_sun_nio_ch_FileDispatcherImpl_writev0],
|
|
|
|
|
]
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### limit参数
|
|
|
|
|
|
|
|
|
|
> 通过 `--limit`参数,可以限制返回值数量,避免获取超大数据时对JVM造成压力。默认值是10。
|
|
|
|
|
|
|
|
|
|
所以上面的命令实际上等值于:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
vmtool --action getInstances --className java.lang.String --limit 10
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
如果设置`--limit`为负数,则遍历所有对象。
|
|
|
|
|
|