الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف انظف الذاكرة من الاغراض التي يتم انشائها؟؟؟

مغلق
بدأه mkarima1980 في 31 مايو 2007 · 3 رد · 1,578 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عملت برنامج باستخدام jbuilder

ولاحظت انه كل ما فتحت نوافذ اكثر يزداد استهلاك البرنامج من الذاكرة حتى بعد اغلاق النوافذ

مثلا يبدا البرنامج بمساحة 20 ميغا

بعد فتح عدة نوافذ يصبح 30 ثم 40 ثم ... يصبح البرنامج بطيئا فأضطر الى اغلاقه واعادة تشغيله

ما هي الاسباب التي من الممكن ان تبطئ البرنامج بشكل كبير وما هي الحلول برأيكم

وشكرا

#2

أتقد أن الموضوع موش مرتبط بالجافا،

ممكن تسأل في موقع ال jbuilder :D

#3

حقيقة هذي مشكله تواجه الجافا ، لأن الGUI لم يطرأ تطور عليه ( من ناحية ادارة الميموري) ،

أصدقك القول بأن الجافا لم تاتي للclient side لذلك قد لاتجد حلول سريعه لما تريد ، لكن يبدو من JavaOne conference الاهتمام بالموبايل والكلاينت سايد

لايمكنك التحكم بكل ماتريد لأن memory management is JVM specification

حاول تستدعي GC عن طريق System.gc()

ضع كل الاوبجكت التي انتهيت منها بـ null

اذا كنت تستخدم Listeners بعد الانتهاء منها قم بحذفها عن طريق الداله remove لكل اوبجكت ،

استخدم أكثر من thread في الابلكيشن ،

اذا كنت تستخدم JDBC حاول قدر الامكان عدم جعله مشترك بين أكثر من أوبجكت

هل يظهرك لك OutOfMemoryError ؟ إذا كان يظهر فمعناته أنك تعديت حدود الـheap وهو المكان المخصص لحياة الobjects لذلك قم بزيادة حجم الهيب

#4

شكرا أخي عيسى على الرد المفصل

سأحاول العمل بنصائحك

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…