gpt4 book ai didi

Java:内存使用问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:09:35 27 4
gpt4 key购买 nike

我已经设置了最大内存这个值

java -Xmx280m -jar ...

内存使用信息代码(点击按钮):

    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);

该程序显示以下输出(2 次点击+新标签等):

Used Memory:41
Free Memory:123
Total Memory:165
Max Memory:249
Used Memory:67
Free Memory:97
Total Memory:165
Max Memory:249

但是,当我查看 Linux (Centos 7) 系统监视器时,它显示此 java 进程的 330mb。怎么解释呢?

最佳答案

JVM 内存由以下部分组成:

  • 堆内存,Java对象的存储
  • 非堆内存,Java 用来存储加载的类和其他元数据
  • JVM 代码本身、JVM 内部结构、加载的分析器代理代码和数据等。

这些部分可以使用在进程启动期间传递的标志进行配置:

The memory structure of JVM process

关于Java:内存使用问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30709291/

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