ما هي المعلمات -Xms و -Xmx عند تشغيل JVM وكيفية ضبطها بشكل صحيح؟
مرحبًا أيها الزملاء! أنا مبتدئ في Java وواجهت مشكلة عند تشغيل أول تطبيق جاد لي. لدي برنامج بسيط يعالج ملف CSV كبير (حوالي 500 ميجابايت). كتبت الكود التالي:
import java.io.*;
import java.util.*;
public class CsvProcessor {
public static void main(String[] args) throws Exception {
List<String> lines = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new FileReader("data.csv"))) {
String line;
while ((line = br.readLine()) != null) {
lines.add(line);
}
}
System.out.println("تم تحميل الأسطر: " + lines.size());
}
}
عندما أقوم بتشغيله بالأمر `java CsvProcessor`، يتعطل البرنامج مع خطأ `OutOfMemoryError: Java heap space`. سمعت أنه يجب استخدام العلامات `-Xms` و `-Xmx`، لكنني لا أفهم ماذا تعنيان وكيفية ضبطهما بشكل صحيح. على الإنترنت يكتبون أن `-Xms`