gpt4 book ai didi

freebsd - System.exit 在 OpenJDK 7/FreeBSD 上似乎需要很长时间

转载 作者:行者123 更新时间:2023-12-01 04:51:49 26 4
gpt4 key购买 nike

我在运行 Java 子进程时遇到性能问题Java下,运行在FreeBSD 9.0-RELEASE i386上。

对于该程序,System.exit() 的运行时间约为 2.6 秒。和我不明白为什么。在 Windows 上需要 0.025 秒。 更新:它在 OpenJDK 6 上运行速度也快得多。

在 ktrace 下运行 OpenJDK7 会在关闭期间显示以下一系列内容:

26795 java 1.808597 调用_umtx_op(0x2831e068,0xf,0,0,0xbf7a9870)
26795 java 1.838640 RET _umtx_op -1 errno 60 操作超时

我怎样才能知道程序在这里试图做什么?或者,有一个简单的解决方法或方法来解决这个问题吗?从网络搜索来看,这个问题似乎在 FreeBSD 的操作系统级别上经常出现,但我仍在分析我所发现的内容(并尝试学习 libthr 等)。

除了打印时间戳之外,我没有添加任何关闭 Hook ,系统没有添加任何关闭 Hook ,没有要删除的文件,也没有 runFinalizersOnExit。系统似乎把时间花在了 native 方法 java.lang.Shutdown.halt0 上,我仍在尝试分析该方法。

最佳答案

操作数 0xf 是 UMTX_OP_WAKE_PRIVATE(参见 /usr/src/sys/sys/umtx.h)。这尝试唤醒内核线程,但失败了。

现在很难说为什么会失败。这可能是java中的死锁。

关于freebsd - System.exit 在 OpenJDK 7/FreeBSD 上似乎需要很长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14822254/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com