2010-06-11 97 views
-1

可用内存:我的目标指标。
Java:我的首选工具。
???:使用后者获得前者的好方法。如何从Java程序中检索可用RAM的数量?

+3

你为什么开始使用“网络”的标题? – aioobe 2010-06-11 10:01:39

+2

“可用内存”,如“可用于您的程序的内存”或“系统中未分配的内存”? – 2010-06-11 19:36:55

回答

1

这个question有一些很好的信息,你可以找到有用的。

1

大概就是这个样子,使用Java Native Interface(JNI):

Kernel32 lib = (Kernel32) Native.loadLibrary ("kernel32",Kernel32.class);   
    Kernel32.MEMORYSTATUS mem = new Kernel32.MEMORYSTATUS(); 
    lib.GetMem(mem); 
    System.out.println ("Available physical memory " + mem.dwAvailPhys); 
+0

这是什么平台? 'Kernel32'当然不是J2SE类。 – 2010-06-11 10:18:02

+0

@Stephen C,你说得对,我已经更新了这篇文章,这是为JNI – 2010-06-11 12:11:52

-1

我知道,购买JNIWrapper,并已对结果满意两个项目。这两种基于Windows的使用。当我将其嵌入到我们当前的项目中时,我们想知道当用户启动我们的应用程序(WebStart)时有多少免费ram可用,因为有很多难以调查的性能投诉(我们怀疑RAM问题)。 JNIWrapper帮助我们在启动时收集有关免费内存,总计和CPU等的统计信息,因此如果用户组抱怨,我们可以检查我们的统计信息,看他们是否被给予了不好的机器。拯救生命。

+0

由于问题是检索可用内存的大小,而不是“我怎样才能更容易地使用JNI”,你可能想发布一个例子前者如何实现...... – Shog9 2010-06-11 17:47:07

+0

@ shog9。问题是我怎样才能在Java中获得可用的RAM。我提出了我见过的最简单的方法来实现这一点。 – 2010-06-12 01:22:24

+0

你能否提供一个JNIWrapper提供的例子,与Adrian写的对比(这在上下文中似乎有点亮)?我知道这个问题是模糊的(“免费RAM”可能意味着很多事情......),但如果你有特定的事情,你可能会分享它...... – Shog9 2010-06-12 04:33:13

相关问题