Ich habe die folgende Klasse in Java:Wie finde ich in Java heraus, wie groß meine maximale Heapgröße ist?
public class MemoryUsage
{
public static void main(String[] args)
{
Vector v = new Vector();
while (true)
{
byte b[] = new byte[1048576];
try {
Thread.sleep(200);
} catch (InterruptedException ie){}
v.add(b);
Runtime rt = Runtime.getRuntime();
System.out.println("free memory: " + rt.freeMemory());
}
}
public void showCurrentTime()
{
long time = System.currentTimeMillis();
System.out.println(time);
}
}
Und ich möchte, wie viel Speicher zu begrenzen, kann dieses Programm verwendet werden. Ich habe versucht, eine anfängliche und die maximale Größe (von Befehlszeile) zu setzen, wie folgt:
C:\JMX_code\Memory_test>java -Xms2m -Xmx4068M MemoryUsage
Error occurred during initialization of VM
The size of the object heap + VM data exceeds the maximum representable size
Aber das funktioniert nicht. Wie finde ich heraus, was meine eigene maximale Heap-Größe ist?
Meine Java Version Info. wie folgt ist:
Java (TM) SE Runtime Environment (build 1.7.0_02-b13) HotSpot Java (TM) 64-Bit-Server VM (build 22,0-b10, mixed mode)
Wie viel RAM ist auf Ihrem Computer und welche Version von Java laufen Sie? – Ishmael
@Coffee Was ist Ihr RAM + Swap Speichergröße? Ich bezweifle, dass es weniger als 4 GB ist. Kannst du es mit -Xmx = 2048m versuchen? –
Welche Java-Version wird gerade ausgeführt (einschließlich 32 oder 64 Bit) und auf welcher Plattform laufen Sie? – callyalater