首页 > 软件开发 > 编程语言 >

如何定义 jvm 堆的大小

来源:互联网 2023-03-17 00:12:21 163

如何定义 jvm 堆的大小l0z办公区 - 实用经验教程分享!

如何定义 jvm 堆的大小?l0z办公区 - 实用经验教程分享!

工具/原料

  • jdk1.8

方法/步骤

  • 1

    jvm 提供了几个命令行参数, 用于定义分配给不同内存区域的内存大小。l0z办公区 - 实用经验教程分享!

    如何定义 jvm 堆的大小?l0z办公区 - 实用经验教程分享!

  • 2

    启动 jvm 时, 可以使用命令行标志-Xmx 和 size指定最大堆大小。例如, 使用 java -Xmx512m 启动 jvm classname> 创建最大堆大小为512兆字节的 jvm。内存大小的后缀为 g 表示千兆字节, m 表示兆字节, k 表示千字节。需要注意的是, jvm 不会在启动时完整地分配此内存;只有在需要的时候, 它才会增长到这个大小的最大值。在 jvm 扩展其内存分配之前, 它将尝试执行尽可能多的垃圾回收。l0z办公区 - 实用经验教程分享!

  • 2相关内容未经授权抓取自百度经验
  • 3

    若要指定分配给 jvm 的初始内存量, 请使用-Xms 参数。它的工作方式与-Xmx 相同。如果您知道您的函数需要一定的内存, 则建议使用此参数, 因为它将在扩展到所需大小之前将应用程序从过短的垃圾回收中保存出来。l0z办公区 - 实用经验教程分享!

    如何定义 jvm 堆的大小?l0z办公区 - 实用经验教程分享!

  • 4

    如果将这两个参数设置为相同的值, jvm 将在启动时要求操作系统进行该完整内存分配, 并且它不会增大。l0z办公区 - 实用经验教程分享!

  • 5

    对于初始内存分配, 默认值为计算机上内存的一半, 最多 1 gb。对于最大默认值, 它是计算机物理内存的较小的 1 gb 和四分之一。考虑到这些值在不同的计算机之间可能会有很大的差异, 您应该为生产环境中运行的任何代码显式指定值, 并确保您的代码对这些值执行得满意。l0z办公区 - 实用经验教程分享!

  • 6

    与设置初始和最大堆大小类似, 您也有用于设置堆栈大小的 jvm 启动参数。对于大多数正在运行的程序, 应避免设置这些程序。如果您发现自己经常遇到StackOverflowExceptions, 则应检查您的代码, 并将尽可能多的递归方法替换为迭代对应方法。l0z办公区 - 实用经验教程分享!

    如何定义 jvm 堆的大小?l0z办公区 - 实用经验教程分享!

  • 7

    其他相关的 jvm 参数包括-XX:Permsize和-XX:MaxPermSize的永久生成。如果您有大量的类或字符串常量, 或者如果您正在使用非 java 语言创建许多动态类定义, 则可能需要设置此设置。l0z办公区 - 实用经验教程分享!

  • 以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!l0z办公区 - 实用经验教程分享!


    标签: 编程语言

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码