java怎么查看list占用的內(nèi)存大小

小億
454
2023-11-14 19:18:27

在Java中,可以使用Instrumentation類(lèi)來(lái)查看對(duì)象占用的內(nèi)存大小。下面是一個(gè)示例代碼:

import java.lang.instrument.Instrumentation;
import java.util.ArrayList;
import java.util.List;

public class MemoryUsage {

    private static Instrumentation instrumentation;

    public static void premain(String args, Instrumentation inst) {
        instrumentation = inst;
    }

    public static void main(String[] args) {
        List<Object> list = new ArrayList<>();
        // 添加元素到list中
        // ...

        long size = instrumentation.getObjectSize(list);
        System.out.println("List占用的內(nèi)存大?。?quot; + size + " bytes");
    }
}

首先,需要?jiǎng)?chuàng)建一個(gè)Instrumentation對(duì)象來(lái)獲取對(duì)象的大小。在premain方法中,將Instrumentation對(duì)象保存在一個(gè)靜態(tài)變量中,以備后續(xù)使用。

然后,在main方法中,創(chuàng)建一個(gè)List對(duì)象,并添加元素到列表中。最后,使用instrumentation.getObjectSize(list)方法來(lái)獲取List對(duì)象的大小。

請(qǐng)注意,要使用Instrumentation類(lèi),需要在運(yùn)行程序時(shí)加上額外的參數(shù)-javaagent:path/to/your/jar.jar來(lái)指定jar文件的路徑。

0