هذه هي مذكرة الأوامر التي يمكن تشغيلها في موفر الاستضافة المجاني OnWorks باستخدام إحدى محطات العمل المجانية المتعددة عبر الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت
برنامج:
اسم
memusage - استخدام ذاكرة الملف الشخصي للبرنامج
موجز
رسالة [خيار] ... برنامج [خيار البرنامج] ...
الوصف
رسالة عبارة عن برنامج نصي bash يحدد استخدام ذاكرة البرنامج، برنامج. هذا
يقوم بتحميل ملف libmemusage.so المكتبة في بيئة المتصل (عبر ملف LD_PRELOAD
متغيرات البيئة؛ ارى ld.so(8)). ال libmemusage.so مكتبة يتتبع تخصيص الذاكرة
عن طريق اعتراض المكالمات إلى malloc(3) calloc(3) مجاني(3)، و إعادة تخصيص(3)؛ اختياريا، المكالمات
إلى mmap(2) com.mremap(2)، و com.munmap(٢) يمكن اعتراضه أيضًا.
رسالة يمكن إخراج البيانات المجمعة في شكل نصي، أو يمكن استخدامها com.memusagestat(1) (انظر
ال -p الخيار أدناه) لإنشاء ملف PNG يحتوي على تمثيل رسومي لـ
البيانات التي تم جمعها.
مكبر الصوت : يدعم، مع دعم ميكروفون مدمج لمنع الضوضاء استعمال ملخص
إخراج سطر "ملخص استخدام الذاكرة" بواسطة رسالة يحتوي على ثلاثة حقول:
كومة مجموع
مجموع المقاسات الحجج للجميع malloc(٣) النداءات، منتجات الحجج
(نميمب*المقاسات) للجميع calloc(٣) النداءات، ومجموعها الطول الحجج للجميع mmap(2)
المكالمات. في حالة إعادة تخصيص(3) و com.mremap(٢) إذا كان الحجم الجديد
التخصيص أكبر من الحجم السابق، وهو مجموع كل هذه الاختلافات
تتم إضافة (الحجم الجديد ناقص الحجم القديم).
كومة قمة
الحد الأقصى للجميع المقاسات حجج malloc(3) جميع المنتجات نميمب*المقاسات of
calloc(٣)، الكل المقاسات حجج إعادة تخصيص(3) الطول حجج mmap(2)، و
new_size حجج com.mremap(2).
كومة قمة
قبل الاستدعاء الأول لأي وظيفة مراقبة، عنوان مؤشر المكدس
يتم حفظ (مؤشر المكدس الأساسي). بعد كل استدعاء دالة، المكدس الفعلي
تتم قراءة عنوان المؤشر والفرق عن مؤشر المكدس الأساسي
محسوب. الحد الأقصى لهذه الاختلافات هو ذروة المكدس.
مباشرة بعد سطر الملخص هذا، يوجد جدول يوضح عدد المكالمات وإجمالي الذاكرة
المخصصة أو غير المخصصة، وعدد المكالمات الفاشلة لكل وظيفة تم اعتراضها. ل
إعادة تخصيص(3) و com.mremap(2)، يُظهر الحقل الإضافي "nomove" عمليات إعادة التخصيص التي تغيرت
عنوان الكتلة، ويعرض الحقل "dec" الإضافي عمليات إعادة التخصيص التي انخفضت
حجم الكتلة. ل إعادة تخصيص(3)، يُظهر الحقل الإضافي "مجاني" عمليات إعادة التخصيص
مما أدى إلى تحرير الكتلة (أي أن الحجم المعاد تخصيصه كان 0).
"إعادة تخصيص/إجمالي الذاكرة" لإخراج الجدول بواسطة رسالة لا يعكس الحالات التي
إعادة تخصيص(3) يستخدم لإعادة تخصيص كتلة من الذاكرة ليكون حجمها أصغر من السابق.
يمكن أن يتسبب هذا في أن يكون مجموع كافة خلايا "الذاكرة الإجمالية" (باستثناء "المجانية") أكبر من
خلية "الذاكرة الحرة/الإجمالية".
الرسم البياني For منع الأحجام
يوفر "الرسم البياني لأحجام الكتل" تقسيمًا لتخصيصات الذاكرة إلى مختلف
أحجام دلو.
OPTIONS
-n الاسم, - الاسم المستعار =الاسم
اسم ملف البرنامج إلى الملف الشخصي.
-p ملف, --png=ملف
قم بإنشاء رسم PNG وقم بتخزينه فيه ملف.
-d ملف, - البيانات =ملف
إنشاء ملف بيانات ثنائي وتخزينه فيه ملف.
-u, - غير عابرة
لا المخزن المؤقت الإخراج.
-b المقاسات, --المخزن المؤقت=المقاسات
جمع المقاسات الإدخالات قبل كتابتها.
--لا يوجد توقيت
تعطيل الاعتماد على المؤقت (سيجبروف) أخذ عينات من قيمة مؤشر المكدس.
-m, --خريطة
تتبع أيضا mmap(2) com.mremap(2)، و com.munmap(2).
-?, --مساعدة
تعليمات الطباعة والخروج.
--استخدام
اطبع رسالة استخدام قصيرة واخرج.
-V, --الإصدار
طباعة معلومات الإصدار والخروج.
تنطبق الخيارات التالية فقط عند إنشاء مخرجات رسومية:
-t, - على أساس الوقت
استخدم الوقت (بدلاً من عدد استدعاءات الوظائف) كمقياس للمحور X.
-T, --المجموع
ارسم أيضًا رسمًا بيانيًا لإجمالي استخدام الذاكرة.
- العنوان =الاسم
استعمل الاسم كعنوان للرسم البياني.
-x المقاسات, --x-الحجم=المقاسات
اصنع الرسم البياني المقاسات بكسل.
-y المقاسات, --y-size=المقاسات
اصنع الرسم البياني المقاسات بكسل عالية.
EXIT الوضع
حالة الخروج تساوي حالة الخروج من البرنامج التعريفي.
مثال
يوجد أدناه برنامج بسيط يقوم بإعادة تخصيص كتلة من الذاكرة في دورات تصل إلى الذروة
قبل ذلك يتم إعادة تخصيص الذاكرة بشكل دوري في كتل أصغر تعود إلى الصفر.
بعد تجميع البرنامج وتشغيل الأوامر التالية، رسم بياني للذاكرة
يمكن العثور على استخدام البرنامج في الملف memusage.png:
$ رسالة --data=memusage.dat ./a.out
ملخص استخدام الذاكرة: إجمالي الكومة: 45200، ذروة الكومة: 6440، ذروة الكومة: 224
إجمالي المكالمات إجمالي الذاكرة المكالمات الفاشلة
مالوك| 1
إعادة تخصيص| 40 44800 0 (النقل:40، ديسمبر:19، مجانًا:0)
كالوك| 0 0 0
مجاني| 1
الرسم البياني لأحجام الكتلة:
192-207 1 2% ========
2192-2207 1 2% ========
2240-2255 2 4% ============================ XNUMX% XNUMX%
2832-2847 2 4% ============================ XNUMX% XNUMX%
3440-3455 2 4% ============================ XNUMX% XNUMX%
4032-4047 2 4% ============================ XNUMX% XNUMX%
4640-4655 2 4% ============================ XNUMX% XNUMX%
5232-5247 2 4% ============================ XNUMX% XNUMX%
5840-5855 2 4% ============================ XNUMX% XNUMX%
6432-6447 1 2% ========
$ com.memusagestat memusage.dat memusage.png
البرنامج مصدر
#يشمل
#تتضمن
#تعريف الدورات 20
مادبا
main (int argc، char * argv [])
{
كثافة العمليات ط، ي؛
int * p؛
printf("malloc: %zd\n", sizeof(int) * 100);
ع = malloc(sizeof(int) * 100);
ل(i = 0; i < دورات; i++) {
إذا (i <دورات / 2)
ي = ط؛
آخر
ي--؛
printf("realloc: %zd\n", sizeof(int) * (j * 50 + 110));
p = realloc(p, sizeof(int) * (j * 50 + 100));
printf("realloc: %zd\n", sizeof(int) * ((j+1) * 150 + 110));
p = realloc(p, sizeof(int) * ((j + 1) * 150 + 110));
}
مجاني (ع) ؛
خروج (EXIT_SUCCESS) ،
}
استخدم memusage عبر الإنترنت باستخدام خدمات onworks.net