I want to test how much memory takes a class(foo) in java.In the constructor of foo I have the followings new:

```
int 1 = new int[size]
int 2 = new int[size]
....
int 6 = new int[size]

```

The size begins from 100 and increases until 4000.  

So my code is:

```
Runtime r  = Runtime.getRuntime();
for(int i=0;i<10;i++)
r.gc();

double before = r.TotalMemory()-r.freeMemory();
Foo f = new Foo();
double after = r.TotalMemory()-r.freeMemory();
double result = after-before;

```

The problem is unti 2000 I have an increasing good result.But after 2000 I have a number which is < of the result of 2000. I guess that the gc is triggered.And sometimes I get the same number as it doesn't see the difference.  
 I did run with -Xms2024m -Xmx2024m which is my full pc memory. But I get the same behaviour.  
 I did run with -Xmn2023m -Xmx2024m and I get some strange results such as: 3.1819152E7.

Please help me on this.Thanks in advance.