gpt4 book ai didi

java - 如何确定正在运行的 JVM 上的 MaxDirectMemorySize?

转载 作者:行者123 更新时间:2023-11-29 07:19:03 31 4
gpt4 key购买 nike

我有一个使用 DirectByteBuffers 存储数据的应用程序,但我想知道 MaxDirectMemorySize 是多少,以免不小心超过它。

在不手动配置的情况下,我如何从程序中找出 MaxDirectMemorySize 是多少?

最佳答案

仅当在命令行上明确指定该选项时,接受的答案才有效。从 Java 6 开始,您可以使用 HotSpotDiagnosticMXBean 直接访问该选项。 .下面的Java 7代码可以方便的阅读:

final HotSpotDiagnosticMXBean hsdiag = ManagementFactory
.getPlatformMXBean(HotSpotDiagnosticMXBean.class);
if (hsdiag != null) {
System.out.println(hsdiag.getVMOption("MaxDirectMemorySize"));
}

请注意,这可能会返回零值,这意味着使用默认设置,等于 Runtime.getRuntime().maxMemory()。例如,对于 Windows 7 上的 Oracle JDK 7u71 64 位,这将返回 3,690,987,520。

或者,如果您愿意求助于访问 sun.misc 包,可以通过调用 sun.misc.VM.maxDirectMemory() 直接获得它。 .

关于java - 如何确定正在运行的 JVM 上的 MaxDirectMemorySize?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6878883/

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