gpt4 book ai didi

java - 如何为java程序分配堆内存

转载 作者:行者123 更新时间:2023-11-30 10:15:52 25 4
gpt4 key购买 nike

我有一个 java 程序,它在无限循环中创建 20 个不同的字符串对象

 for(int i = 0 ; i >=0 ; i++){
String s = new String("Test");
String s1 = new String("Test");
/*creating more string objects here */
System.out.println(s);
}

然后用 java -Xms1m -Xmx1m HelloWorld enter image description here 运行这个程序并打开 VisualVM 以监控堆大小。我不确定为什么它在顶部显示大小和最大值为 2,097,152 B。 不应该是 1,000,000 吗? 我也想知道为什么使用不会超过 700,000 B。 始终在 300000 到 700000 之间

请看附件,不明白为什么CPU下会提示“Not supported for this JVM”?

最佳答案

您可以使用几个 JVM 标志:

  • -Xmx 为特定 JVM 设置最大堆内存(像这样使用:-Xmx2G。它会将可用堆限制为 2GB)
  • -Xms 为 JVM 设置初始分配的堆大小(像这样使用:-Xms2G。它将初始堆大小设置为 2GB)

您始终可以根据现有算法集设置垃圾收集算法:

  • -XX:+UseG1GC 使用G1 gc
  • -XX:+UseConcMarkSweepGC 使用Concurrent mark and sweep gc

你可以在这里检查一些标志:http://files.zeroturnaround.com/pdf/zt_JVM-options-cheat-sheet.pdf

关于java - 如何为java程序分配堆内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50298520/

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