问题标签 [jvm-arguments]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
194556 浏览

java - JVM 堆参数

在阅读了有关该主题的已提出问题并进行了大量谷歌搜索后,我仍然无法清楚地了解-Xms选项

java -Xms=512m -Xmx=512m我的问题是:和有什么区别java -Xms=64m -Xmx=512m

现在我有以下答案:

唯一的区别是在我的应用程序运行期间将运行的垃圾回收的数量和内存分配的数量。我对吗 ?

以下是我回答这个问题的原因:

-Xms选项设置为512m不会导致我的应用程序512M在启动后使用真正的物理内存。我想这与现代操作系统虚拟内存管理和惰性页面分配有关。(我注意到无论是 Linux 上的 top 还是 Windows 上的任务管理器报告的初始使用内存,设置-Xms512M或 to64M都没有改变)

有人可以帮助我了解此Xms选项的影响或指向有助于我理解它的链接吗?

提前致谢

马努

0 投票
4 回答
8712 浏览

java - Java的-XX:+UseMembar参数是什么

我在各种地方(论坛等)都看到了这个参数,它帮助高并发服务器的常见答案。尽管如此,我还是找不到来自 sun 的官方文档来解释它的作用。另外,它是在 Java 6 中添加的还是在 Java 5 中存在?

(顺便说一句,很多热点VM参数的好地方就是这个页面

更新: Java 5 不使用此参数启动。

0 投票
5 回答
182982 浏览

java - 如何从 Java 应用程序内部获取 VM 参数?

我需要检查某些可以传递给 JVM 的选项是否已显式设置或具有其默认值。

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

java.lang.System我已经检查了and之类的类java.lang.Runtime,但是这些并没有给我任何有关 VM 参数的有用信息。

有什么方法可以获得我需要的信息吗?

0 投票
2 回答
591 浏览

java - 检索传递给 JVM 的主类/jar 文件名

作为 C++ 应用程序,有没有办法查询 java 进程(java.exe/javaw.exe)以检索传递给 JVM 的主类或 jar 文件名?我想要与运行“jps -l”时相同的结果:

我想我可以获取命令行参数并尝试解析类名,但我想知道是否有更简单的方法可以可靠地仅提取类名或 jar 文件名。

谢谢!

0 投票
2 回答
105803 浏览

java - 使用 JAVA_OPTS 环境变量运行 java 无效

在一个shell脚本中,我设置了JAVA_OPTS环境变量(启用远程调试和增加内存),然后我执行jar文件如下:

但似乎 JAVA_OPTS env 变量没有影响,因为我无法连接到远程调试,而且我看到 JVM 的内存没有变化。

可能是什么问题呢?

PS:我不能在java -jar analyse.jar $*命令中使用这些设置,因为我在应用程序中处理命令行参数。

0 投票
4 回答
162702 浏览

java - -XX:+UseParallelGC 和 -XX:+UseParNewGC 的区别

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

第二个(UseParNewGC)通过并发的终身垃圾回收自动激活(请参阅Java Concurrent and Parallel GC)但是,这两种并行算法之间有区别吗?

0 投票
8 回答
156217 浏览

java - Java 堆栈溢出错误 - 如何在 Eclipse 中增加堆栈大小?

我正在运行一个我在 Eclipse 中用 Java 编写的程序。对于非常大的输入,该程序具有非常深的递归级别。对于较小的输入,程序运行良好,但是当输入较大时,我收到以下错误:

这可以通过增加 Java 堆栈大小来解决吗?如果可以,我该如何在 Eclipse 中做到这一点?

更新:

@乔恩斯基特

代码递归地遍历解析树以构建数据结构。因此,例如,代码将使用解析树中的一个节点做一些工作,并在该节点的两个子节点上调用自身,组合它们的结果以给出树的整体结果。

递归的总深度取决于解析树的大小,但是当递归调用的数量达到 1000 时,代码似乎会失败(没有更大的堆栈)。

此外,我很确定代码不会因为错误而失败,因为它适用于小输入。

0 投票
4 回答
59789 浏览

java - Java -classpath 选项

是否会使用-classpath选项 with java、添加或替换CLASSPATHenv 变量的内容?

0 投票
2 回答
4516 浏览

java - 从 JNI 方法中创建 JVM

是否可以使用 JNI API 从 JNI 方法中创建 JVM?

我尝试使用 JNI 函数“JNI_CreateJavaVM()”来执行此操作,但它不起作用(该函数始终返回小于零的值)。

这是我正在使用的基本代码(C++):

其中 USER_CLASSPATH 包含我要加载的类的路径。上述代码执行后,res < 0,说明JNI_CreateJavaVM()失败。上面的代码是从 Java 调用的用 C++ 编写的本机方法的一部分。关于如何让它发挥作用的任何想法?

谢谢。

0 投票
1 回答
16903 浏览

java - Java -server 参数

可能重复:
“java -server”和“java -client”之间的真正区别?

我已经看到参数“-server”用作 java.exe 的命令行参数:

java.exe -server MyClass

但无论我多么努力地搜索互联网,我都没有找到关于它到底做什么的文档。谁能解释一下?