是否可以增加java进程(运行时)的大小?

时间:2014-12-31 08:49:18

标签: java memory process resize runtime

我有一个非常重要的流程正在运行。我无法阻止它,需要扩大java进程'尺寸! 有没有办法增加我的java进程'在线大小(在运行时)?

3 个答案:

答案 0 :(得分:6)

您可以在运行过程中增加以下内容。

  • 线程数
  • 堆栈使用的内存量(但是单个堆栈的最大大小)
  • 使用的本机内存量
  • 映射到内存的内存映射文件量
  • 共享库。

但是你不能做的是增加最大堆大小。这是最大的意思。从技术上讲,这是因为整个堆必须是一个连续的内存区域,增加限制是没有帮助的。

答案 1 :(得分:1)

命令行参数-Xmx设置最大Java堆大小(mx)。所有Java对象都是在Java堆上创建的,但JVM进程的总内存消耗包含的内容不仅仅是Java堆。几个例子:

  • 生成(JIT:ed)代码
  • 已加载的库(包括jar和类文件)
  • Java堆的控制结构
  • 线程堆栈
  • 用户本机内存(malloc:ed in JNI)

在确定应在单个服务器上运行的进程数以及将最大堆大小设置为的内容时,必须考虑这一点。通常,堆是进程空间的最大部分,但进程的总大小也取决于您的应用程序。

保留!=已提交

很容易被保留(或映射)内存的数量警告,但是在内存提交之前,进程不会使用任何物理内存资源。

所以我建议你不要增加-Xmx尺寸,但要遵循Peter Lawrey提供的解决方案!!

答案 2 :(得分:-1)

您可以增加堆大小,但该配置取决于IDE。 例如:对于eclipse编辑eclipse.ini有

-Xms<size> - 2048m
-Xmx<size> - 2048m

取决于您的RAM大小。

希望这有帮助。