如何查找程序使用的内存量?
1),以获得您的Java应用程序可以使用Runtime的最大内存量:多少内存JVM已经分配给您的应用程序
Runtime runtime = Runtime.getRuntime();
System.out.println("max memory: " + runtime.maxMemory()/1024);
2)获得:
Runtime runtime = Runtime.getRuntime();
System.out.println("allocated memory: " + runtime.totalMemory()/1024);
3)获得您的应用程序正在使用多少内存:
Runtime runtime = Runtime.getRuntime();
System.out.println("free memory: " + runtime.freeMemory()/1024);
这只适用于通过Java分配的内存 –
对于第一个答案Nod不好。为了您未来的答案:适当地格式化代码(用四个空格缩进),并且可能链接到相关文档 –
它可能是operating system特定;值得注意的是JVM管理Java分配的内存,但您可能使用JNI(也就是您的Java程序调用OpenCV函数)使用JNI调用C++中的外部函数,并且您可能对当前的process的virtual address space感兴趣。在Linux上,您可以使用proc(5)并阅读并解析/proc/self/statm
或/proc/self/stat
或/proc/self/status
。如果你的进程有pid 1234,你也可以在另一个终端上尝试cat /proc/1234/maps
,或者使用pmap(1)。在其他操作系统上,您需要深入了解相应的文档。
如果您只关心JVM直接使用的内存,请使用Runtime class作为answered by Hans。
顺便说一句,你的JVM有一个garbage collector,所以定义确切的内存使用量不是微不足道的。
你的问题可能与BlueJ无关。您可以使用其他IDE(或Java编译器)。所以我想你需要删除'bluej'标签 –