问题标签 [jvm]

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 回答
1718 浏览

java - jvm设计决策

为什么 jvm 需要大约 10 MB 的内存来实现一个简单的 hello world 而 clr 不需要。这里的权衡是什么,即 jvm 通过这样做可以获得什么?

让我澄清一下,因为我没有传达我脑海中的问题。jvm 和 clr 运行时之间显然存在架构差异。jvm 的内存占用明显高于 clr。我假设这种开销有一些好处,否则为什么会存在。我在问这两种设计的权衡是什么。jvm 从它的内存开销中获得了什么好处?

0 投票
3 回答
890 浏览

java - 是否可以将 X 显示名称传递给 JVM

是否可以指定 JVM 通过 JVM 在哪个 X 显示器上启动它的窗口?我在想这样的事情

我查看了手册页,但找不到任何东西。

还是我需要将我对 jvm 的调用包装在这样的 shell 脚本中

我不想编写脚本只是为了指定一个可以直接传递给 JVM 的参数。

PS:不,我不想更改我的环境 DISPLAY 变量我想在我喜欢的任何 DISPLAY 上启动 JVM :)

更新 回答问题“为什么我使用第二种解决方案很重要”使用第二种解决方案,如果我想在几个不同的显示器上启动 jvm 会话,我必须为每个会话设置 DISPLAY。

我正在寻找的就像你可以用 Xprograms 做的事情

试试xterm -display my_display:0.0 所以我的问题是我可以用 jvm 做这个吗,我在任何地方都看不到它的记录。如果做不到,那么正确的答案应该是“不,你不能”,我已经知道替代方案了:)

谢谢

0 投票
4 回答
1894 浏览

coldfusion - JDK 6u14 Garbage First (G1) 垃圾收集器是否适合 JRun?

垃圾优先 (G1) 垃圾收集器 http://weblogs.java.net/blog/opinali/archive/2009/02/here_comes_jdk.html

你认为这个垃圾收集器更适合运行 ColdFusion 8 的 JRun 吗?

0 投票
2 回答
2489 浏览

java - 如何重置或终止 JVM 上下文?

我正在通过java <class file>命令运行一个简单的 java 客户端。java 命令实际上是由系统进程调用的。这是在 Unix 上。

我们遇到了 X11 Display 的问题。所以我们export DISPLAY=:0.0在启动文件中添加了显示问题就解决了。现在,当export DISPLAY=:0.0从启动文件中删除该行并再次运行 java 客户端时,我们无法恢复到旧状态,即,我们不再收到 X11 显示错误。所以有一些东西在系统上持续存在。有什么方法可以确保在运行客户端之前杀死 JVM 上下文?

我们已经杀死了触发 java 客户端的进程,然后重新启动该进程以再次运行 java 客户端。但没有成功回到旧状态。

[编辑] 我忘了提到我已经在停止文件中尝试过“取消设置显示”。启动文件在环境启动时运行,而停止文件在环境关闭时运行。我也尝试过无头模式,但这对我们的程序不起作用。

0 投票
5 回答
380 浏览

java - JVM 是否有最坏的情况实现?

Java 内存模型清楚地说明了关于线程如何通过内存进行交互的假设和不可以假设。例如,如果一个线程在没有适当同步的情况下将新值写入字段,则不能保证其他线程可以观察到新值。然而,在实践中,尽管同步不充分,其他线程仍可能读取新值,这取决于写入和读取之间的时间、硬件架构等。

这可能导致难以发现且难以重现的错误。因此,在超出Java 内存模型保证的线程之间绝对没有内存同步的最坏情况 JVM 上运行 Java 应用程序可能很有用。这种最坏情况的 JVM 实现是否存在?

0 投票
4 回答
38666 浏览

java - 找出运行 JVM Eclipse 的设备

我目前正在尝试调整我的 Eclipse 安装并遇到了“-vm”选项。SO 上的其他帖子提到始终使用最新的可用 JVM 是件好事,因为它们在性能方面不断提高,所以我可能会这样做。我想知道如果您没有指定“-vm”参数,您如何找出运行 JVM Eclipse 的内容。

我在文档中找到了以下内容,但这并没有说明它将如何查找 JVM:

当传递给 Eclipse 可执行文件时,此选项用于定位用于运行 Eclipse 的 Java VM。它必须是相应 Java 可执行文件的完整文件系统路径。如果未指定,Eclipse 可执行文件将使用搜索算法来定位合适的 VM。无论如何,可执行文件然后使用 -vm 参数将路径传递给用于 Java Main 的实际 VM。Java Main 然后将此值存储在 eclipse.vm 中。

0 投票
7 回答
56000 浏览

java - 大型应用程序的 JVM 性能调优

默认的 JVM 参数对于运行大型应用程序不是最佳的。任何在实际应用程序上对其进行调整的人的见解都会有所帮助。我们在 32 位 windows 机器上运行应用程序,默认使用客户端 JVM 。我们添加了 -server 并将 NewRatio 更改为 1:3(更大的年轻一代)。

您尝试过并发现有用的任何其他参数/​​调整?

[更新] 我说的特定类型的应用程序是很少关闭的服务器应用程序,至少占用 -Xmx1024m。还假设应用程序已经过概要分析。我只在JVM 性能方面寻找一般指导方针。

0 投票
7 回答
14014 浏览

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

我在具有 16Gb RAM、8 核处理器和 Java 1.6 的机器上运行内存密集型应用程序,所有这些都在 CentOS 版本 5.2(最终版)上运行。确切的 JVM 详细信息是:

我正在使用以下命令行选项启动应用程序:

我的应用程序公开了一个 JSON-RPC API,我的目标是在 25 毫秒内响应请求。不幸的是,我看到延迟达到并超过 1 秒,这似乎是由垃圾收集引起的。以下是一些较长的示例:

这些垃圾收集事件中的每一个都伴随着延迟的 API 响应,其持续时间与所示垃圾收集的长度非常相似(在几毫秒内)。

以下是一些典型的例子(这些都是在几秒钟内产生的):

问题是我认为 UseConcMarkSweepGC 会避免这种情况,或者至少让它变得非常罕见。相反,超过 100 毫秒的延迟几乎每分钟发生一次或更多(尽管超过 1 秒的延迟相当罕见,可能每 10 或 15 分钟一次)。

另一件事是,我认为只有 FULL GC 会导致线程暂停,但这些似乎不是 full GC。

可能需要注意的是,大部分内存都被使用软引用的 LRU 内存缓存占用。

任何帮助或建议将不胜感激。

0 投票
4 回答
1049 浏览

java - 如何在 jstack 输出中显示源代码行号?

这是来自正在运行的 JVM 的 jstack 输出

我希望 QueueFooThread 中的行号显示为 Catalina 进程的此帧

在编译/引导期间我应该怎么做才能启用它?谢谢

0 投票
6 回答
2419 浏览

java - 你能混合使用 JVM 语言吗?即:Groovy & Clojure

我知道你可以很容易地混合 groovy&java、clojure&java、whateverJvmLang&java。

这是否也意味着我也可以让 clojure 和 groovy 代码交互?如果我使用 Grails 或 jRoR,我也可以在那个环境中使用 clojure 吗?