gpt4 book ai didi

java - 我的java程序最多使用多少内存?

转载 作者:行者123 更新时间:2023-12-01 04:36:42 25 4
gpt4 key购买 nike

使用我发现的以下类 here我可以获得一些有关虚拟机内存的统计数据。

但是还有一种方法可以获取我的程序所需的最大内存或我的程序的特定方法吗?

/**
* Class: TestMemory
* @author: Viral Patel
* @description: Prints JVM memory utilization statistics
*/
public class TestMemory {

public static void main(String [] args) {

int mb = 1024*1024;

//Getting the runtime reference from system
Runtime runtime = Runtime.getRuntime();

System.out.println("##### Heap utilization statistics [MB] #####");

//Print used memory
System.out.println("Used Memory:"
+ (runtime.totalMemory() - runtime.freeMemory()) / mb);

//Print free memory
System.out.println("Free Memory:"
+ runtime.freeMemory() / mb);

//Print total available memory
System.out.println("Total Memory:" + runtime.totalMemory() / mb);

//Print Maximum available memory
System.out.println("Max Memory:" + runtime.maxMemory() / mb);
}
}

最佳答案

因此,方法本身不会占用 JVM 上的内存,而是您在方法等中创建的对象。创建方法本身只会在编译的类上产生更大的占用空间。

您可以尝试使用诸如 VisualVM 之类的内容进行分析或JProfiler 。尝试在调试中设置断点,并在逐步执行程序时观察这些分析器中的内存,并记下所谓的“问题区域”。

这些分析器将为您提供大量性能统计数据,让您大致了解所需的内存等。

关于java - 我的java程序最多使用多少内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17239823/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com