السلام عليكم ورحمة الله وبركاته
اخواني اعمل على برنامج يستهلك الكثير من الذاكرة رام
ما في طريقة لتخفيف الضغط على الرام ؟؟
انا اعمل مثلا حلقة for من 0 الى 100000000 فالجهاز يثقل ...
هل هناك دوال تخفف الضغط ؟
السلام عليكم ورحمة الله وبركاته
اخواني اعمل على برنامج يستهلك الكثير من الذاكرة رام
ما في طريقة لتخفيف الضغط على الرام ؟؟
انا اعمل مثلا حلقة for من 0 الى 100000000 فالجهاز يثقل ...
هل هناك دوال تخفف الضغط ؟
جرب وضع دالة DoEvents أو أي دالة تأخير زمني بين أي حلقة..ولكنها تؤثر بالتأكيد علي سرعة التكرار نفسه..
Dim i As Double
For i = 0 To 100000000
DoEvents
Debug.Print i
Next
جربت وكانت لا تعطي أي تحسن
انا عند تنفيذ البرنامج بتلك العملية وارى برنامج إدارة المهام
أرى شريط إستهلاك الرام قد قفز ,احس إن الذاكرة مستهلكة بالكامل
أخي العزيز ..
البرنامج مش هيستهلك بايت واحد زيادة من الرام أثناء التكرار..
هذا لأنك قمت بتعريف المتغير بحجم ثابت من قبل.. والذي سيحمل قيم العداد الرقمية أثناء التكرار..
الذي يستهلك هو البروسيسور.. وهذا شيء طبيعي..لأنك بتديله تعليمات تكرارية للأبد..
المفروض أن تلاحظ الأختلاف بين استخدام DoEvents وعدم استخدامها علي أداء البروسيسور ..
إذا لم تستخدمها فستجد الاستهلاك لا يقل عن 99% بينما إذا استخدمتها فستجده يقفز لــ 70 ويقل لـ10..
مما يتيح استهلاكه في شيء أخر..
هذا الموضوع مغلق.