我正在开发一个仅用Java编写的应用程序,该应用程序通常会使用大量数据(最多500 GB)。该程序将保存数据库中当前未使用的数据。
但是,由于很多数据经常被重用,因此我想在应用程序中保留尽可能多的数据。为了不出现任何内存不足错误,我希望能够在任何时候检查整个应用程序正在使用多少内存,以便在应用程序达到预定义的限制时可以存储它。>
像这样的东西
long memoryUsage = SomeClass.getCurrentMemoryUsage();
答案 0 :(得分:0)
如果您专门寻找JVM内存:
Runtime runtime = Runtime.getRuntime();
NumberFormat format = NumberFormat.getInstance();
StringBuilder sb = new StringBuilder();
long maxMemory = runtime.maxMemory();
long allocatedMemory = runtime.totalMemory();
long freeMemory = runtime.freeMemory();
sb.append("free memory: " + format.format(freeMemory / 1024) + "<br`enter code here`/>"); sb.append("allocated memory: " + format.format(allocatedMemory / 1024) + "<br/>");
sb.append("max memory: " + format.format(maxMemory / 1024) + "<br/>");
sb.append("total free memory: " + format.format((freeMemory + (maxMemory -
allocatedMemory)) / 1024) + "<br/>");
答案 1 :(得分:0)
Runtime rt = Runtime.getRuntime();
long total_mem = rt.totalMemory();
long free_mem = rt.freeMemory();
long used_mem = total_mem - free_mem;
System.out.println("Amount of used memory: " + used_mem);
我们可以通过上述代码找到运行时使用的内存。