Avatar ·

خطأ java.lang.OutOfMemoryError: GC overhead limit exceeded — ماذا تفعل؟

مرحبًا بالجميع! أنا مطور Java مبتدئ، أكتب تطبيقًا صغيرًا لمعالجة السجلات. يقرأ البرنامج ملفًا نصيًا كبيرًا (حوالي 500 ميجابايت)، ويقسم الأسطر إلى كلمات ويجمع إحصائيات — كم مرة تظهر كل كلمة. أستخدم HashMap. كان كل شيء يعمل بشكل طبيعي على الملفات الصغيرة، ولكن عندما شغّلته على بيانات حقيقية، بعد بضع دقائق ظهر الخطأ: Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded إليك الكود المبسط: ```java public class LogAnalyzer { public static void main(String[] args) throws IOException { Map wordCount = new HashMap<>(); BufferedReader reader = new BufferedReader(new FileReader("large_log.txt")); String line; while ((line = reader.readLine()) != null) { String[] words = line.split("\\s+"); for (String word : words) { wordCount.merge(word, 1, Integer::sum); } } ```