على حسب علمي ان الجافا تقوم بعملية Garbage Collection بشكل تلقائي , فلماذا يحصل مثل الإستثناء التالي
وكيف من الممكن حله
Exception in thread "Image Fetcher 0" java.lang.OutOfMemoryError: Java heap space
على حسب علمي ان الجافا تقوم بعملية Garbage Collection بشكل تلقائي , فلماذا يحصل مثل الإستثناء التالي
وكيف من الممكن حله
Exception in thread "Image Fetcher 0" java.lang.OutOfMemoryError: Java heap space
السلام عليكــم ورحمـة الله وبركاتــه ،،
ليس للأمر علافة بالgarbage collector
الJVM تحدد مقدار الذاكرة التي يستخدمها البرنامج، ولكن إذا ما أراد البرنامج استعمال ذاكرة أكثر من التي حددت له، فسيحدث OutOfMemoryError
لتغيير مقدار الذاكرة المخصصة لبرنامجك، استعمل الoption
-Xmsn
حيث n هو مقدار الذاكرة التي تريد استعمالها
مثال
java -Xms512m YourProgram
512m : initial memory allocated
**************************************************
أظن أنه يستحسن تغيير الmaximum value بدل الinitial value
يعني تبديل -Xms ب -Xmx
تم تعديل هذه المشاركة بواسطة herch في 2 مايو 2009 في 23:25
اقتباسلتغيير مقدار الذاكرة المخصصة لبرنامجك، استعمل الoption-Xmsn
حيث n هو مقدار الذاكرة التي تريد استعمالها
كل الشكر الجزيل لك يا herch , لكن اين اكتب الأمر السابق , هل في CMD , علما بأني استخدم NetBeans , وهل الامر السابق يجب عليا تكراره في كل مرة ...
السلام عليكــم ورحمـة الله وبركاتــه ،،
يمكنك إستعماله في Netbeans
projects--> right clic on your project --> choose properties --> select run on the left list (categories) "run" --> in "VM options" add the option -Xmx256m for example
أما بالنسبة للتنفيذ من console، فيجب إضافة الoption في كل مرة
يمكنك استخدام ملف sh أو bat من أجل ذلك
وسيكون من الأفضل أن تراجع الكود وتقلل من استهلاك برنامجك للذاكرة