微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我真的需要定义java最小堆大小

我即将将应用程序部署到实时服务器,现在我正处于为jvm设置堆和permgen大小的部分.我看过很多文章,所有人都说“将最小堆大小设置为(某个数字)”,并“将最大堆大小设置为(某个数字)”,但这些文章都没有说明为什么需要设置最小堆大小.我理解设置最大堆大小的原因,但不是最小堆大小.如果你对此有所了解,我将感激不尽.

解决方法

Java中的堆是一般的内存分配区域.我们假设我们将最小堆大小设置为1000字节(这是一个荒谬的低数字).现在让我说我在我的程序中实例化一个包含一些长度为两千个字符的文本的对象.如果不先扩展堆大小,我无法保存此对象.现在,大概我的最大堆参数足够大以允许这个 – 但这是设置最大堆大小的原因.

但是,假设我的服务器有4G ram,我将最小堆大小设置为. (一个荒谬的大数字.)如果没有其他程序占用任何内存,这将工作.但是,如果我使用我的java程序启动第二个进程,它将无法分配足够的内存并退出.

最小尺寸为您做两件事;首先,它使内存快速可用,以便快速启动.其次,它可以让你调整你的jvm,以便你有一些不变量,允许你预测你可以运行多少个进程.如果您的最小堆大小太大,那么您可能会在一个从不需要那么多的进程上浪费内存,从而限制了系统的容量.如果将其设置得太小,程序将需要很长时间才能启动,从而对流程的性能产生负面影响.

原文地址:https://www.jb51.cc/java/120309.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐