Heap-Speicherplatz in Java vergrößern
- Java Heap-Größe über die Befehlszeile erhöhen
- Java-Heap-Größe in einer integrierten Entwicklungsumgebung (IDE) erhöhen
In Java wird Heap Space hauptsächlich für die Garbage Collection und die Zuweisung von Speicher zu Objekten verwendet.
Bei der Installation der JVM auf unserer Maschine wird ein Standard-Heap-Speicherplatz zugewiesen, der jedoch variieren kann. Die folgenden Punkte zeigen, wie wir die Heap-Größe in Java auf zwei Arten erhöhen können.
Java Heap-Größe über die Befehlszeile erhöhen
Die erste Methode zum Erhöhen der Heap-Größe in Java besteht darin, die Befehlszeile zum Ausführen der Befehle zu verwenden, die den standardmäßigen Java-Heap-Speicherplatz überschreiben. Wir befolgen die folgenden zwei Schritte.
Schritt 1: Überprüfen Sie die standardmäßige maximale Heap-Größe in Java
Bevor wir die Größe des Heaps in Java ändern, müssen wir die standardmäßige maximale Heap-Größe kennen, die der JVM zugewiesen ist. Dazu verwenden wir den Code Runtime.getRuntime().maxMemory()
, der die maximale Heap-Größe in Bytes zurückgibt.
Im Programm erhalten wir den maximalen Heap-Speicherplatz in Bytes und konvertieren ihn in ein besser lesbares Format wie Megabyte oder Gigabyte. Die Ausgabe zeigt, dass unsere aktuelle Standardgröße etwa 1,48 GB beträgt.
Wir führen diesen Schritt aus, damit wir keine kleinere Größe als die Standardgröße des Heaps zuweisen.
public class JavaExample {
public static void main(String[] args) {
double maxHeapSize = Runtime.getRuntime().maxMemory();
String sizeInReadableForm;
double kbSize = maxHeapSize / 1024;
double mbSize = kbSize / 1024;
double gbSize = mbSize / 1024;
if (gbSize > 0) {
sizeInReadableForm = gbSize + " GB";
} else if (mbSize > 0) {
sizeInReadableForm = mbSize + " MB";
} else {
sizeInReadableForm = kbSize + " KB";
}
System.out.println("Maximum Heap Size: " + sizeInReadableForm);
}
}
Ausgabe:
Maximum Heap Size: 1.48046875 GB
Schritt 2: Verwenden Sie die Befehlszeile, um die maximale Heap-Größe festzulegen
Da wir nun den maximalen Java-Heap-Speicherplatz kennen, erhöhen wir ihn über die Befehlszeile.
Um die Befehle zu erhalten, mit denen wir die Heap-Größe ändern können, öffnen wir die Befehlszeile und verwenden den Befehl java -X
, der eine ganze Liste von Befehlen zurückgibt, aber wir interessieren uns nur für die folgenden zwei Befehle.
Der Befehl -Xms
legt die anfängliche und minimale Heap-Größe fest, während -Xms
die maximale Größe festlegt; Wir müssen den zweiten Befehl verwenden.
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size
In die Befehlszeile schreiben wir den folgenden Befehl, der das Programm ausführt, das wir im ersten Schritt sehen.
Wir verwenden -Xmx2g
, um die Heap-Größe um 2 GB zu erhöhen. Beachten Sie, dass wir die Speichereinheit als einzelnes Zeichen schreiben; Wenn wir beispielsweise eine Heap-Größe von 2 GB festlegen möchten, schreiben wir 2g.
Die Ausgabe zeigt, dass die Standardgröße von etwa 1,4 GB jetzt auf 2,0 GB geändert wird.
java -Xmx2g JavaExample
Ausgabe:
Maximum Heap Size: 2.0 GB
Java-Heap-Größe in einer integrierten Entwicklungsumgebung (IDE) erhöhen
Wir können auch den Java-Heap-Speicherplatz in einer IDE erhöhen, wenn wir das Programm ausführen. Obwohl einige IDEs möglicherweise unterschiedliche Schritte zum Ausführen der Aufgabe haben, können wir die Heap-Größe in den meisten IDEs ändern, wenn wir diese Schritte befolgen.
-
In der Menüleiste finden wir den Menüpunkt
Run
. -
Im Menüpunkt
Run
gibt es eine Option namensRun Configurations
oderEdit Configurations
, die wir öffnen müssen. -
Ein Dialogfeld wird geöffnet, um Details über die Anwendung anzuzeigen, die wir mit den Konfigurationen ausführen möchten.
Es gibt zwei Eingabefelder: eines für die Programmargumente und das zweite für VM-Argumente. Wenn es kein Eingabefeld für die VM-Argumente gibt, können wir sie über die Schaltfläche
Modify Options
hinzufügen. -
In das Eingabefeld der VM-Argumente schreiben wir den folgenden Befehl, um das Programm mit der erhöhten Heap-Größe auszuführen.
-Xmx2g
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn