англійськафранцузькаіспанська

Ad


Значок OnWorks

memusage - Інтернет у хмарі

Запустіть memusage у безкоштовному хостинг-провайдері OnWorks через Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS

Це команда memusage, яку можна запустити у безкоштовного хостинг-провайдера OnWorks за допомогою однієї з наших безкоштовних онлайн-робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS

ПРОГРАМА:

ІМ'Я


memusage - профіль використання пам'яті програмою

СИНТАКСИС


повідомлення [варіант]... програма [варіант програми]...

ОПИС


повідомлення це сценарій bash, який профілює використання пам’яті програмою, програма. Це
попередньо завантажує libmemusage.so бібліотеку в середовище абонента (через LD_PRELOAD
змінна середовища; побачити ld.так(8)). The libmemusage.so бібліотека відстежує розподіл пам'яті
шляхом перехоплення дзвінків до Танос(3) мозоль(3) безкоштовно(3), і перерозподіл(3); за бажанням дзвінки
до mmap(2) mremap(2), і munmap(2) також можна перехопити.

повідомлення може виводити зібрані дані в текстовій формі або використовувати memusagestat(1) (див
-p параметр нижче), щоб створити файл PNG із графічним зображенням
зібрані дані.

пам'ять використання резюме
Рядок "Підсумок використання пам'яті" виводиться за допомогою повідомлення містить три поля:

купа загальний
Сума розмір аргументи всіх Танос(3) виклики, продукти аргументів
(nmemb*розмір) з всіх мозоль(3) дзвінки та сума аргументи всіх mmap(2)
дзвінки. У випадку перерозподіл(3) і mremap(2), якщо новий розмір an
виділення більше попереднього розміру, сума всіх таких різниць
(новий розмір мінус старий розмір).

купа пік
Максимум з усіх розмір аргументи Танос(3), усі продукти компанії nmemb*розмір of
мозоль(3), всі розмір аргументи перерозподіл(3) аргументи mmap(2), і
новий_розмір аргументи mremap(2).

стек пік
Перед першим викликом будь-якої контрольованої функції адреса вказівника стека
(базовий покажчик стека) збережено. Після кожного виклику функції фактичний стек
адреса покажчика зчитується і відрізняється від покажчика базового стека
обчислюється. Тоді максимальна з цих відмінностей є піком стека.

Відразу після цього підсумкового рядка таблиця показує кількість викликів, загальну пам’ять
виділено або звільнено, а також кількість невдалих викликів для кожної перехопленої функції. для
перерозподіл(3) і mremap(2), додаткове поле "nomove" показує змінені перерозподіли
адреса блоку, а додаткове поле "dec" показує перерозподіли, які зменшилися
розмір блоку. для перерозподіл(3), додаткове поле «вільно» показує перерозподіл
що призвело до звільнення блоку (тобто перерозподілений розмір був 0).

"Realloc/total memory" таблиці, виведеної за повідомлення не відображає випадків, коли
перерозподіл(3) використовується для перерозподілу блоку пам’яті, щоб мати менший розмір, ніж раніше.
Це може призвести до того, що сума всіх комірок "загальної пам'яті" (за винятком "вільної") буде більшою за
комірка "вільна/загальна пам'ять".

Гістограма та цінності блок розміри
«Гістограма для розмірів блоків» надає розбивку розподілу пам’яті на різні
розміри ковша.

ВАРІАНТИ


-n ім'я, --progname=ім'я
Назва файлу програми для профілювання.

-p файл, --png=файл
Створіть графіку PNG і збережіть її файл.

-d файл, --дані=файл
Згенеруйте файл двійкових даних і збережіть його файл.

-u, --небуферизовані
Не буферизуйте вихід.

-b розмір, --buffer=розмір
Збирати розмір записи перед тим, як їх виписати.

--без таймера
Вимкнути на основі таймера (SIGPROF) вибірка значення покажчика стека.

-m, --mmap
Також слід mmap(2) mremap(2), і munmap(2).

-?, --допомога
Роздрукувати довідку та вийти.

--використання
Роздрукуйте коротке повідомлення про використання та вийдіть.

-V, -- версія
Роздрукувати інформацію про версію та вийти.

Наступні параметри застосовуються лише під час створення графічного виводу:

-t, --на основі часу
Використовуйте час (а не кількість викликів функцій) як шкалу для осі X.

-T, --всього
Також намалюйте графік загального використання пам’яті.

--title=ім'я
Скористайтесь ім'я як заголовок графіка.

-x розмір, --x-розмір=розмір
Складіть графік розмір пікселів шириною.

-y розмір, --y-size=розмір
Складіть графік розмір пікселів висотою.

EXIT СТАТУС


Статус виходу дорівнює статусу виходу профільованої програми.

приклад


Нижче наведено просту програму, яка перерозподіляє блок пам’яті за циклами, які досягають піку
перед цим циклічно перерозподіляючи пам'ять на менші блоки, які повертаються до нуля.
Після компіляції програми та виконання наступних команд, графік пам'яті
використання програми можна знайти у файлі memusage.png:

$ повідомлення --data=memusage.dat ./a.out
...
Підсумок використання пам’яті: загальна купа: 45200, пік купи: 6440, пік стека: 224
загальна кількість дзвінків загальна кількість викликів у пам’яті
malloc| 1 400 0
realloc| 40 44800 0 (nomove:40, dec:19, free:0)
calloc| 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

програма джерело
#включати
#включати

#define ЦИКЛИ 20

Int
main(int argc, char *argv[])
{
int i, j;
int *p;

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

for (i = 0; i < CYCLES; i++) {
якщо (i < ЦИКЛИ / 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));
}

безкоштовно (р);
вихід (EXIT_SUCCESS);
}

Використовуйте memusage онлайн за допомогою сервісів onworks.net


Безкоштовні сервери та робочі станції

Завантажте програми для Windows і Linux

  • 1
    VBA-M (заархівовано – зараз на Github)
    VBA-M (заархівовано – зараз на Github)
    Проект переміщено в
    https://github.com/visualboyadvance-m/visualboyadvance-m
    Особливості: Створення чітів, збереження кількох станів
    система, підтримує gba, gbc, gb, sgb,
    sgb2Tu...
    Завантажте VBA-M (архівовано - тепер на Github)
  • 2
    Стацер
    Стацер
    Оптимізатор і моніторинг системи Linux
    Репозиторій Github:
    https://github.com/oguzhaninan/Stacer.
    Аудиторія: кінцеві користувачі/комп’ютер. Користувач
    інтерфейс: Qt. Програмування La...
    Завантажити Stacer
  • 3
    оранжева лисиця
    оранжева лисиця
    Форк TeamWinRecoveryProject (TWRP)
    з багатьма додатковими функціями, редизайн
    та інші особливості: Підтримка високих частот і
    ПЗУ без високих частот. Оновлене ядро ​​Oreo,
    побудований...
    Завантажити OrangeFox
  • 4
    itop - ITSM CMDB OpenSource
    itop - ITSM CMDB OpenSource
    ІТ-операційний портал: повністю відкритий
    джерело, ITIL, веб-сервіс
    інструмент управління в тому числі повн
    настроюваний CMDB, система служби підтримки та
    документодавець...
    Завантажити itop - ITSM CMDB OpenSource
  • 5
    Клементина
    Клементина
    Clementine — це мультиплатформена музика
    плеєр і органайзер бібліотеки, натхненний
    Amarok 1.4. Він має швидкий і
    простий у використанні інтерфейс і дозволяє
    пошук і...
    Завантажити Clementine
  • 6
    XISMuS
    XISMuS
    УВАГА: Кумулятивне оновлення 2.4.3 має
    звільнено!! Оновлення працює для будь-якого
    попередня версія 2.xx. У разі оновлення
    з версії v1.xx, завантажте і
    Я ...
    Завантажте XISMuS
  • Детальніше »

Команди Linux

  • 1
    abiword
    abiword
    abiword � гнучке міжплатформне слово
    процесор...
    Запустіть abiword
  • 2
    абл
    абл
    abl - префіксне представлення для
    логічні функції ОПИС:
    libablmmm.a — це бібліотека, яка дозволяє
    представляють булеву функцію в a
    LISP-подібна форма. ...
    Запустити abl
  • 3
    create_bmp_for_rect_in_circ
    create_bmp_for_rect_in_circ
    sorry_no_written_yet - частина використання atlc
    create_bmp_for_rect_in_circ онлайн за допомогою
    послуги onworks.net. ...
    Запустіть create_bmp_for_rect_in_circ
  • 4
    create_bmp_for_rect_in_rect
    create_bmp_for_rect_in_rect
    create_bmp_for_rect_in_rect - растрове зображення
    генератор для прямокутного провідника
    всередині прямокутного провідника (частина
    atlc) ...
    Запустіть create_bmp_for_rect_in_rect
  • 5
    розрив 5
    розрив 5
    gap5 - Програма складання геному (частина
    стаден пакет)...
    Run gap5
  • 6
    gapi2-codegen
    gapi2-codegen
    недокументований - для цього немає довідкової сторінки
    програма. ОПИС: Ця програма робить
    немає сторінки довідника. Виконайте цю команду
    за допомогою перемикача, щоб побачити, що це
    робить. Для е...
    Запустіть gapi2-codegen
  • Детальніше »

Ad