سؤال

هل علامة برنامج التحويل البرمجي VS2005 C++ مثل علامة Xmx؟؟؟M java حتى أتمكن من تحديد حجم الكومة لتطبيقي الذي يعمل على Windows.

أحتاج إلى تحديد حجم الكومة حتى أتمكن من ملء الذاكرة لمعرفة الذاكرة الحرة الحالية.(يتم تشغيل الكود أيضًا على نظام مضمن حيث تعد هذه هي أفضل طريقة للحصول على استخدام الذاكرة)

هل كانت مفيدة؟

المحلول

قد ترغب في معرفة ما إذا كانت الأداة المساعدة gflags (في أدوات تصحيح أخطاء Windows) يمكنها القيام بذلك.يمكنه القيام بالكثير من الأشياء الأخرى المثيرة للاهتمام باستخدام مجموعة كبيرة من التطبيقات الأصلية.

نصائح أخرى

يمكنك ضبط حجم الكومة لبرنامجك عن طريق ضبط الحجم في:

Linker -> System -> Heap Reserve Size

ويمكن أيضًا تعيينه في سطر أوامر المترجم باستخدام /HEAP:reserve

يعتمد حجم الكومة على المُخصص المستخدم.قد يكون هناك أيضًا بعض استدعاءات Windows API التي تحد من مقدار الذاكرة التي يمكن أن تخصصها العملية، لكنني لست على علم بها ولا أشعر بالرغبة في البحث عنها الآن، آسف.ولكن بشكل عام، إذا قمت بكتابة المُخصص الخاص بك (ربما فقط قم بالالتفاف حول المترجم المقدم malloc() أو new عامل التشغيل) يمكنك تحديد حجم الكومة بشكل مصطنع بهذه الطريقة.

وبدلاً من ذلك، إذا كان لديك المُخصص الخاص بك، حتى لو كان مجرد مُجمِّع، فيمكنك تتبع مقدار الذاكرة التي تم تخصيصها بشكل إجمالي.إذا كنت تعرف المبلغ المتاح، يمكنك فقط إجراء بعض الطرح والانتهاء من الحصول على الإجمالي.قد تتمكن أيضًا من الحصول على إحصائيات التجزئة، مثل أكبر كتلة مجانية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top