如何准确查找Java应用程序在应用程序中使用的内存量[重复]

问题描述 投票:2回答:2

这个问题在这里已有答案:

我正在开发一个仅用Java编写的应用程序,它通常会使用非常大量的数据(最多500 GB)。该程序将保存当前未在数据库中使用的数据。

但是,我想在应用程序中保留尽可能多的数据,因为很多数据经常被重用。为了不获得任何内存不足错误,我希望能够检查整个应用程序在任何时刻使用多少内存,以便在应用程序接近预定义限制时我可以存储它。

像这样的东西;

long memoryUsage = SomeClass.getCurrentMemoryUsage();
java memory memory-management runtime usage-statistics
2个回答
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/>");

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); 

我们可以通过上面的代码找到运行时使用的内存。

© www.soinside.com 2019 - 2024. All rights reserved.