انگلیسیفرانسویاسپانیایی

Ad


فاویکون OnWorks

memusage - آنلاین در ابر

اجرای memusage در ارائه دهنده هاست رایگان OnWorks از طریق Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS

این دستوری است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.

برنامه:

نام


memusage - استفاده از حافظه نمایه یک برنامه

خلاصه


یادداشت [انتخاب] ... برنامه [programoption] ...

شرح


یادداشت یک اسکریپت bash است که استفاده از حافظه برنامه را نمایه می کند، برنامه. آن
را از قبل بارگذاری می کند libmemusage.so کتابخانه به محیط تماس گیرنده (از طریق LD_PRELOAD
متغیر محیطی؛ دیدن ld. بنابراین(8)). را libmemusage.so کتابخانه تخصیص حافظه را ردیابی می کند
با رهگیری تماس ها به از malloc(3) کالوک(3) رایگان(3)، و تخصیص مجدد(3)؛ به صورت اختیاری، تماس می گیرد
به نقشه(2) mmap(2)، و مون مپ(2) همچنین می تواند رهگیری شود.

یادداشت می تواند داده های جمع آوری شده را به صورت متنی خروجی دهد یا می تواند استفاده کند memusagestat(1) (نگاه کنید به
la -p گزینه زیر) برای ایجاد یک فایل PNG حاوی نمایش گرافیکی
داده های جمع آوری شده

حافظه استفاده خلاصه
خروجی خط "خلاصه استفاده از حافظه" توسط یادداشت شامل سه فیلد:

پشته جمع
مجموع اندازه استدلال های همه از malloc(3) فراخوان ها، محصولات استدلال
(nmemb*اندازه) از همه کالوک(3) تماس ها و مجموع طول استدلال های همه نقشه(2)
تماس می گیرد. در شرایطی که تخصیص مجدد(3) و mmap(2)، اگر اندازه جدید یک
تخصیص بزرگتر از اندازه قبلی است، مجموع تمام این تفاوت ها
(سایز جدید منهای سایز قدیمی) اضافه شد.

پشته قله
حداکثر از همه اندازه استدلال های از malloc(3)، همه محصولات از nmemb*اندازه of
کالوک(3)، همه اندازه استدلال های تخصیص مجدد(3) طول استدلال های نقشه(2)، و
اندازه جدید استدلال های mmap(2).

پشته قله
قبل از اولین تماس با هر تابع نظارت شده، آدرس نشانگر پشته
(نشانگر پشته پایه) ذخیره می شود. پس از هر فراخوانی تابع، پشته واقعی
آدرس اشاره گر خوانده می شود و تفاوت با نشانگر پشته پایه
محاسبه شده است. حداکثر این تفاوت ها پس از آن پیک پشته است.

بلافاصله پس از این خط خلاصه، جدولی تعداد تماس ها، کل حافظه را نشان می دهد
تخصیص داده شده یا واگذار شده، و تعداد تماس های ناموفق برای هر تابع رهگیری شده. برای
تخصیص مجدد(3) و mmap(2)، فیلد اضافی "nomove" تخصیص مجدد را نشان می دهد که تغییر کرده است
آدرس یک بلوک، و فیلد اضافی "dec" تخصیص مجدد کاهش یافته را نشان می دهد
اندازه بلوک برای تخصیص مجدد(3)، فیلد اضافی "رایگان" تخصیص مجدد را نشان می دهد
که باعث شد یک بلوک آزاد شود (یعنی اندازه تخصیص مجدد 0 بود).

"حافظه واقعی/کل" جدول خروجی توسط یادداشت مواردی را منعکس نمی کند
تخصیص مجدد(3) برای تخصیص مجدد یک بلوک حافظه برای داشتن اندازه کوچکتر از قبل استفاده می شود.
این می تواند باعث شود مجموع تمام سلول های "حافظه کل" (به استثنای "رایگان") بزرگتر از
سلول "حافظه آزاد/کل".

هیستوگرام برای مسدود کردن اندازه
"هیستوگرام برای اندازه های بلوک" تقسیم بندی تخصیص حافظه به انواع مختلف را ارائه می دهد
اندازه های سطل

OPTIONS


-n نام, --progname=نام
نام فایل برنامه به نمایه.

-p پرونده, --png=پرونده
گرافیک PNG تولید کنید و آن را در آن ذخیره کنید پرونده.

-d پرونده, --data=پرونده
فایل داده باینری تولید کرده و در آن ذخیره کنید پرونده.

-u, - بدون بافر
خروجی را بافر نکنید.

-b اندازه, --بافر=اندازه
جمع آوری اندازه نوشته ها قبل از نوشتن آنها

--بدون تایمر
غیرفعال کردن مبتنی بر تایمر (SIGPROF) نمونه برداری از مقدار اشاره گر پشته.

-m, --mmap
همچنین ردیابی نقشه(2) mmap(2)، و مون مپ(2).

-?, --کمک
راهنما را چاپ کنید و خارج شوید.

--استفاده
یک پیام استفاده کوتاه را چاپ کنید و خارج شوید.

-V, - نسخه
اطلاعات نسخه را چاپ کنید و خارج شوید.

گزینه های زیر فقط هنگام تولید خروجی گرافیکی اعمال می شوند:

-t, -- بر اساس زمان
از زمان (به جای تعداد فراخوانی تابع) به عنوان مقیاس برای محور X استفاده کنید.

-T, --جمع
همچنین یک نمودار از کل استفاده از حافظه رسم کنید.

--عنوان=نام
استفاده کنید نام به عنوان عنوان نمودار

-x اندازه, --x-size=اندازه
نمودار را بسازید اندازه پیکسل گسترده

-y اندازه, --y-size=اندازه
نمودار را بسازید اندازه پیکسل بالا

خروج وضعیت


وضعیت خروج برابر با وضعیت خروج از برنامه پروفایل است.

مثال


در زیر یک برنامه ساده وجود دارد که یک بلوک از حافظه را در چرخه هایی که به اوج می رسند، مجدداً اختصاص می دهد
قبل از آن به طور دوره ای حافظه را در بلوک های کوچکتر تخصیص دهید که به صفر برمی گردند.
پس از کامپایل برنامه و اجرای دستورات زیر، نموداری از حافظه نمایش داده می شود
استفاده از برنامه را می توان در فایل یافت memusage.png:

$ یادداشت --data=memusage.dat ./a.out
...
خلاصه استفاده از حافظه: مجموع هیپ: 45200، پیک هیپ: 6440، پیک پشته: 224
مجموع تماس ها مجموع حافظه تماس های ناموفق
malloc| 1 400 0
realloc| 40 44800 0 (نوام:40، دسامبر:19، رایگان: 0)
کالوک| 0 0 0
رایگان| 1 440
هیستوگرام برای اندازه بلوک:
192-207 1 2% =================
...
2192-2207 1 2% =================
2240-2255 2 4% ==================================
2832-2847 2 4% ==================================
3440-3455 2 4% ==================================
4032-4047 2 4% ==================================
4640-4655 2 4% ==================================
5232-5247 2 4% ==================================
5840-5855 2 4% ==================================
6432-6447 1 2% =================
$ memusagestat memusage.dat memusage.png

برنامه منبع
#عبارتند از
#عبارتند از

#تعریف چرخه 20

INT
اصلی (int argc، char *argv[])
{
int i, j;
int *p;

printf("malloc: %zd\n", sizeof(int) * 100);
p = malloc(sizeof(int) * 100);

برای (i = 0; i < CYCLES; i++) {
اگر (i < CYCLES / 2)
j = i;
دیگر
j--

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));
}

آزاد (p)؛
خروج (EXIT_SUCCESS)؛
}

با استفاده از خدمات onworks.net از memusage آنلاین استفاده کنید


سرورها و ایستگاه های کاری رایگان

دانلود برنامه های ویندوز و لینوکس

دستورات لینوکس

Ad