jvm-arguments相关内容

无法创建启用了 -XX:+UseLargePages 的 JVM

我有一个当前使用 14GB 堆运行的 Java 服务.我很想尝试 -XX:+使用LargePages 选项来查看这可能如何影响系统的性能.我已经按照 Oracle 的描述配置了操作系统使用适当的共享内存和页面值(也可以使用在线工具计算).p> 配置操作系统后,我可以看到它将预期的内存量分配为大页面.但是,使用 -XX:+UseLargePages 选项集启动 VM 总是会导致以下错误之一: ..
发布时间:2022-01-24 23:21:43 其他开发

给 jvm 的线程堆栈大小选项(-Xss)是什么?为什么它在 Windows pc 中至少有 68k 的限制?

我见过 JVM 选项 -Xss - 它究竟做了什么? 这个链接,但我的问题是这个选项有什么用处. 因为,如果我们为 -Xss 值设置一个非常小的限制,则线程可能无法正常工作,因为它可能会在大多数情况下抛出 stackOverflow 错误. 为什么这个值至少有 64k 个限制? 我如何得到这个 64k 限制是当我试图在 IntelliJ iDE 上配置运行时 vm 选项时,我试图给出 ..
发布时间:2022-01-22 12:49:28 Java开发

JVM -XX:+StringCache 参数?

我最近在阅读 JRE 6 中可用的所有 JVM 参数 [Java VM选项]并看到了这个: -XX:+StringCache : 启用常用分配字符串的缓存. 现在我的印象是 Java 保留了一个实习(正确的词?)字符串池,并且在使用文字进行字符串连接之类的操作时,它不是创建新对象,而是将它们从该池中拉出.有没有人使用过这个论点,或者可以解释为什么需要它? 编辑:我尝试运行基准测试 ..
发布时间:2022-01-16 12:41:33 Java开发

将 Java 控制台应用程序作为守护进程运行(后台)

我开发了一个 Java 控制台应用程序,当启动时,打开一个控制台窗口并保持在前台,我想在后台启动该应用程序. 现在我通过这个命令行启动应用程序: java -jar myapp.jar 有没有办法实现这种行为?更改命令行参数就足够了,或者我需要对我的代码进行一些更改? 解决方案 答案取决于操作系统. *nix: &Windows:(打开一个新控制台):开始 ..
发布时间:2022-01-16 12:37:25 Java开发

JVM 选项列表 - 在 Oracle 之后仍在维护?

JVM 选项列表是否仍在任何地方维护?它似乎已经从 Oracle 的网站上消失了,但幸运的是 Wayback Machine 有 一份副本. 解决方案 使用 java -XX:+PrintFlagsFinal 打印可用的 -XX 选项.可以使用以下选项将更多诊断和实验选项添加到列表中:-XX:+UnlockDiagnosticVMOptions-XX:+UnlockExperimental ..
发布时间:2022-01-16 12:32:20 其他开发

减少 JVM 暂停时间 >1 秒使用 UseConcMarkSweepGC

我正在一台具有 16Gb RAM、一个 8 核处理器和 Java 1.6 的机器上运行一个内存密集型应用程序,所有这些都在 CentOS 版本 5.2(最终版)上运行.确切的 JVM 详细信息是: java 版本“1.6.0_10"Java(TM) SE 运行时环境 (build 1.6.0_10-b33)Java HotSpot(TM) 64 位服务器 VM(内部版本 11.0-b15,混合模 ..
发布时间:2022-01-16 12:26:29 Java开发

非服务器类机器上 Xmx、Xms、MaxPermSize 的默认值

非服务器类机器上的 Java 6 中以下选项的默认值是什么? -Xmx -XX:MaxPermSize Oracle 的 文档 指出: 在运行服务器 VM 的服务器级机器上,垃圾收集器 (GC) 已从以前的串行收集器 (-XX:+UseSerialGC) 更改为并行收集器 (-XX:+UseParallelGC). 和 在运行带有并行垃圾收集器 (-XX:+UseP ..
发布时间:2022-01-16 12:20:29 其他开发

哪些参数代表 JVM 内存选项中的内容?

有很多 JVM 参数会影响 JVM 的内存使用,例如 -Xms、-Xmx、-Xns、-XX:MaxPermSize... 他们是做什么的? 还有吗? 遇到什么错误(如OutOfMemoryError、StackOverflowError...)时我必须增加哪一项? 我找不到适合他们的备忘单 - 让我们在这里创建一个. 解决方案 -Xms: 此选项设置初始和最小 Java 堆 ..
发布时间:2022-01-16 12:19:42 Java开发

Java heap Xms 和 linux free memory 不同

我有一个在 centos Box 中运行的 java 程序.我的 -Xmx 和 -Xms 设置为 4000 Mb. 程序运行良好. 但是当我执行 free -m 时,已用内存显示为 506 MB.根据我的理解,XMS内存应该是为JVM保留的.为什么free命令不显示java使用的内存? 我也完成了 jstat -gccapacity $(pidof java) 并且 NGCMN ..
发布时间:2022-01-16 12:05:27 Java开发

重复的 Java 运行时选项:优先顺序是什么?

考虑下面的命令行 java -Xms128m -Xms256m myapp.jar JVM 最小内存(Xms 选项)适用哪些设置:128m 或 256m? 解决方案 取决于 JVM,也许是版本......也许甚至可能是你当时桌上有多少个回形针.它甚至可能不起作用.不要那样做. 如果由于某种原因它超出了您的控制范围,请以与运行 jar 相同的方式编译和运行它.但请注意,依赖选项的顺 ..
发布时间:2022-01-16 12:04:17 Java开发

鼓励 JVM 进行 GC 而不是增加堆?

(请注意,当我说“JVM"时,我的意思是“热点",我正在运行最新的 Java 1.6 更新.) 示例情况: 我的 JVM 运行时 -Xmx 设置为 1gb.目前,堆分配了 500mb,其中 450mb 被使用.该程序需要在堆上再加载 200 mb.目前,堆中有 300mb 的“可收集"垃圾(我们假设它们都在最老的一代中.) 在正常操作下,JVM 会将堆增加到 700 mb 左右, ..
发布时间:2022-01-16 12:00:29 Java开发

JVM HotSpot 上的 Java 异常计数器

我想知道是否可以在不更改应用程序代码的情况下记录在 JVM 级别发生的每个异常?每个异常我的意思是捕获和未捕获的异常......我想稍后分析这些日志并按异常类型(类)对它们进行分组,并按类型简单地计算异常.我正在使用热点 ;) 也许这样做更聪明?例如通过任何免费的分析器(YourKit 有它但它不是免费的)?我认为 JRockit 在管理控制台中有异常计数器,但在 HotSpot 中没有看到 ..
发布时间:2022-01-16 11:56:30 Java开发

-XX:MaxPermSize 有什么作用?

具体来说,为什么它有助于解决 PermGen OutOfMemoryError 问题? 另外,如果答案指向我关于 JVM 参数的文档... 解决方案 永久空间是 VM 使用的类、方法、内部化字符串和类似对象的存储位置,并且永远不会被释放(因此得名). 这篇 Oracle 文章简洁地介绍了HotSpot GC 的工作和参数化,并建议您在加载许多类时增加此空间(这通常是应用程序服务 ..
发布时间:2022-01-16 11:50:09 Java开发

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

我需要运行一个使用超过 2GB 的 Java 内存密集型应用程序,但我在增加堆最大大小时遇到​​了问题.到目前为止,我已经尝试了以下方法: 设置 -Xmx 参数,例如-Xmx3000 米.这种方法在创建 JVM 时失败.根据我的谷歌搜索,看起来 -Xmx 必须小于 2GB. 使用 -XX:+AggressiveHeap 选项.当我尝试这种方法时,我收到一个“内存不足"错误,表明堆大小为 ..
发布时间:2022-01-16 11:45:54 Java开发

JVM 标志 CMSClassUnloadingEnabled 实际上是做什么的?

除了一些非常模糊的高级定义,例如“摆脱你的 PermGen 问题"(它没有,顺便说一句). 我查看了 Sun/Oracle 的网站,甚至查看了 选项列表 实际上并没有说明它的作用. 根据标志的名称,我猜测 CMS 垃圾收集器默认情况下不会卸载类,并且此标志将其打开 - 但我不能确定. 解决方案 更新 此答案与 Java 5-7 相关,Java 8 已修复此问题:https:// ..
发布时间:2022-01-16 11:45:26 Java开发

作为服务运行时将JVM参数传递给Tomcat?

我需要将几个 JVM 参数传递给运行 Tomcat 的 JVM,以便我的应用程序可以获取它们. 我想按照本文中概述的获取环境变量的过程. 我该怎么做呢? 更新抱歉,这是在 windows 下运行的(客户端服务器上我的 Dev machine 2003 上的 7) 解决方案 您需要编辑 Windows 服务.有三种方法可以做到这一点: 使用 //MS//Service ..
发布时间:2022-01-15 23:34:55 Java开发