标签: jvm-arguments

如何在Mac上的IntelliJ IDEA中增加IDE内存限制?

我在Mountain Lion上使用IDEA 12 Leda.我想增加IDE可以使用的最大内存.我将Info.plist文件中的VMOptions设置为 -Xmx2048m -ea -XX:+HeapDumpOnOutOfMemoryError -Xverify:none -Xbootclasspath/a:../lib/boot.jar

当我打开IDEA时,我仍然看到最大内存为711m.

jps -v 显示我的VMOptions已加载,但它已被以下选项取代.

29388  **-Xmx2048m** -ea -XX:+HeapDumpOnOutOfMemoryError -Xverify:none -Xbootclasspath/a:../lib/boot.jar -Xms128m **-Xmx800m** -XX:MaxPermSize=350m -XX:ReservedCodeCacheSize=64m -XX:+UseCodeCacheFlushing -XX:+UseCompressedOops -Didea.paths.selector=IdeaIC12 -Dsun.java2d.noddraw=true -Didea.max.intellisense.filesize=2500 -Didea.dynamic.classpath=false -Didea.jars.nocopy=false -Dsun.java2d.d3d=false -Dapple.awt.fullscreencapturealldisplays=false -Dapple.laf.useScreenMenuBar=true -Djava.endorsed.dirs= -Dswing.bufferPerWindow=false -Didea.fatal.error.notification=enabled -Didea.cycle.buffer.size=1024 -Didea.popup.weight=heavy -Didea.xdebug.key=-Xdebug -Dapple.awt.graphics.UseQuartz=true -Dsun.java2d.pmoffscreen=false -Didea.no.launcher=false -DCVS_PASSFILE=~/.cvspass -Didea.use.default.antialiasing.in.editor=false -Dcom.apple.mrj.application.live-resize=false -Didea.smooth.progress=false
29392 Jps -Dapplication.home=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home -Xms8m
Run Code Online (Sandbox Code Playgroud)

哪里-Xmx800来的?我需要删除它.

java macos intellij-idea jvm-arguments

310
推荐指数
7
解决办法
22万
查看次数

-XX:MaxPermSize做什么?

具体来说,为什么修复PermGen OutOfMemoryError问题会有所帮助?

此外,答案的奖励积分指向我关于JVM参数的文档......

java jvm jvm-arguments

246
推荐指数
3
解决办法
32万
查看次数

JVM标志CMSClassUnloadingEnabled实际上做了什么?

我不能为我的生活找到Java VM标志CMSClassUnloadingEnabled实际上做什么的定义,除了一些非常模糊的高级定义,例如"摆脱你的PermGen问题"(它没有,顺便说一句).

我查看了Sun的/ Oracle网站,甚至选项列表也没有说明它的作用.

根据标志的名称,我猜测CMS垃圾收集器默认情况下不会卸载类,而且这个标志会打开它 - 但我不能确定.

java jvm classloader jvm-arguments

182
推荐指数
3
解决办法
9万
查看次数

如何从java应用程序内部获取vm参数?

我需要检查是否可以传递给JVM的某个选项是显式设置还是具有默认值.

更具体一点:
我需要创建一个具有比默认堆栈大更高的本机堆栈大小的特定线程,但是如果用户希望通过指定-Xss选项来自己处理这些事情,我想创建具有默认堆栈大小的所有线程(这将由用户在-Xss选项中指定).

我检查类,如java.lang.Systemjava.lang.Runtime,但这些都没有给我有关的信息-Xss.

有没有办法获得我需要的信息?

java jvm jvm-arguments

152
推荐指数
3
解决办法
14万
查看次数

_JAVA_OPTIONS JAVA_TOOL_OPTIONS和JAVA_OPTS之间的区别

我认为在_JAVA_OPTIONS和之间进行比较会很棒JAVA_TOOL_OPTIONS.我一直在寻找一个,但我找不到任何东西,所以我希望我们能在Stackoverflow上找到这方面的知识.

JAVA_OPTS包括完整性.它不是JVM的一部分,但在野外有很多问题.

我知道的:

到目前为止,我发现:

  • JAVA_OPTSJDK不使用它,而是由许多其他应用程序使用(请参阅此文章).
  • JAVA_TOOL_OPTIONS并且_JAVA_OPTIONS是将JVM参数指定为环境变量而不是命令行参数的方法.
    • 被至少javajavac
    • 他们有这个优先权:
      1. _JAVA_OPTIONS (覆盖其他人)
      2. 命令行参数
      3. JAVA_TOOL_OPTIONS (被其他人覆盖)

我想知道什么

  • 有没有官方文件比较JAVA_TOOL_OPTIONS_JAVA_OPTIONS
  • JAVA_TOOL_OPTIONS和之间是否存在任何其他差异_JAVA_OPTIONS(优先级除外).
  • 其中的可执行文件回暖JAVA_TOOL_OPTIONS_JAVA_OPTIONS(除了javajavac)
  • 什么可以被包含在任何限制JAVA_TOOL_OPTIONS_JAVA_OPTIONS

官方文件

我找不到任何关于的文档_JAVA_OPTIONS.该文件JAVA_TOOL_OPTIONS没有说明差异:

由于无法始终访问或修改命令行,例如在嵌入式VM中或仅在脚本内深入启动的VM,因此提供了JAVA_TOOL_OPTIONS变量,以便在这些情况下可以启动代理.
...

示例脚本

这是我用来解决这个问题的代码.控制台输出包含在注释中:

export JAVA_OPTS=foobar
export JAVA_TOOL_OPTIONS= 
export _JAVA_OPTIONS="-Xmx512m -Xms64m"

java -version                          
# Picked up JAVA_TOOL_OPTIONS: 
# Picked up _JAVA_OPTIONS: -Xmx512m -Xms64m
# …
Run Code Online (Sandbox Code Playgroud)

java jvm jvm-arguments

120
推荐指数
3
解决办法
6万
查看次数

如何在Windows下作为服务启动时为Jenkins提供更多堆空间?

我想增加Jenkins的可用堆空间.但由于它作为服务安装,我不知道该怎么做.

heap jvm-arguments jenkins

109
推荐指数
5
解决办法
16万
查看次数

调试java应用程序而无需使用调试参数启动JVM

通常要将debuger附加到正在运行的jvm,您需要使用如下参数启动jvm:

> java -Xdebug -Xrunjdwp:transport=dt_socket,address=1000,server=y,suspend=n
Run Code Online (Sandbox Code Playgroud)

现在,如果我想调试未在调试模式下启动的进程,我该怎么办?

当生产系统(即没有调试args启动)表现出"随机"(我使用松散术语)错误时,就会出现这种情况.所以我不能用适当的参数重启jvm,因为没有人知道如何再次重现bug.在这种情况下是否无法连接到JVM?

只是为了澄清它是不可能使用像jdb这样的工具连接到已经运行的JVM,除非它们是在调试模式下启动的

来自JVM手册页

使用jdb的另一种方法是将其附加到已经运行的Java VM.必须使用以下选项启动要使用jdb调试的VM:

java debugging jvm jvm-arguments

93
推荐指数
4
解决办法
7万
查看次数

增加内存密集型应用程序的JVM最大堆大小

我需要运行一个使用超过2GB的Java内存密集型应用程序,但是我遇到了增加堆最大大小的问题.到目前为止,我尝试了以下方法:

  • 设置-Xmx参数,例如-Xmx3000m.这种方法在创建JVM时失败.从我用Google搜索,看起来-Xmx必须小于2GB.

  • 使用-XX:+ AggressiveHeap选项.当我尝试这种方法时,我得到一个"内存不足"错误,告诉堆大小为1273.4 MB,即使我的计算机有8GB内存.

是否有另一种方法可以尝试增加JVM的最大堆大小?以下是计算机规格的摘要:

  • 操作系统:Windows 7(64位)
  • 处理器:Intel Core i7(2.66 GHz)
  • 内存:8 GB
  • java -version:
java version "1.6.0_18"
Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
Java HotSpot(TM) Client VM (build 16.0-b13, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)

java jvm jvm-arguments

84
推荐指数
4
解决办法
35万
查看次数

-XX:UseParallelGC和-XX:+ UseParNewGC之间的区别

它们是年轻一代垃圾收集的算法.

第二个(UseParNewGC)通过并发tenured generation垃圾收集自动激活(参见Java Concurrent and Parallel GC),但两个并行算法之间是否存在差异?

java jvm-arguments

80
推荐指数
3
解决办法
14万
查看次数

"VM初始化期间出错; 无法使用-Xmx3G为对象堆保留足够的空间

首先,我有一个8GB的内存盒,所以我怀疑总内存是什么问题.此应用程序在6GB或更低的机器上运行良好.

我试图在Eclipse的Run Configurations中的"VM Arguments"下使用-Xmx3G保留3GB的空间.

每次我尝试保留超过1500mb时,我都会收到此错误:"VM初始化期间出错; 无法使用-Xmx3G为对象堆保留足够的空间

这里发生了什么?

java eclipse jvm jvm-arguments

78
推荐指数
8
解决办法
52万
查看次数