假设我有一个类,它执行一些繁重的处理,操作几个集合。我想要做的是确保这样的操作不会导致内存不足,或者更好的是,我希望设置一个阈值,说明它可以使用多少内存。
class MyClass()
{
public void myMethod()
{
for(int i=0; i<10000000; i++)
{
// Allocate some memory, may be several collections
}
}
}
class MyClassTest
{
@Test
public void myMethod_makeSureMemoryFootprintIsNotBiggerThanMax()
{
new MyClass().myMethod();
// How do I measure amount of memory it may try to allocate?
}
}做这件事的正确方法是什么?还是这不可能/不可行?
发布于 2013-11-05 09:20:40
要测量当前内存的使用情况,请使用:
Runtime.getRuntime().freeMemory(),Runtime.getRuntime().totalMemory()
下面是一个很好的例子:获取操作系统级系统信息
但是这个测量不精确,但是它可以给你很多信息。另一个问题是GC,这是不可预测的。
https://stackoverflow.com/questions/19785290
复制相似问题