EnglezăFrancezăSpaniolă

Ad


Favicon OnWorks

memusage - Online în cloud

Rulați memusage în furnizorul de găzduire gratuit OnWorks prin Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

Aceasta este comanda memusage care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


memusage - utilizarea memoriei de profil a unui program

REZUMAT


memusage [opțiune] ... program [opțiunea programului] ...

DESCRIERE


memusage este un script bash care profilează utilizarea memoriei programului, program. Ea
preîncărcă libmemusage.so bibliotecă în mediul apelantului (prin intermediul LD_PRELOAD
variabilă de mediu; vedea ld.deci(8)). The libmemusage.so biblioteca urmărește alocarea memoriei
prin interceptarea apelurilor către malloc(3), calloc(3), gratuit(3), și realloc(3); opțional, apeluri
la mmap(2), mremap(2), și munmap(2) poate fi de asemenea interceptat.

memusage poate scoate datele colectate în formă textuală sau poate utiliza memusagestat(1) (vezi
il -p opțiunea de mai jos) pentru a crea un fișier PNG care conține reprezentarea grafică a fișierului
datele colectate.

Memorie folosire rezumat
Linia „Rezumatul utilizării memoriei” redată de memusage contine trei campuri:

morman total
Suma de mărimea argumentele tuturor malloc(3) apeluri, produse ale argumentelor
(nmemb*mărimea) dintre toate calloc(3) apeluri, și suma de lungime argumentele tuturor mmap(2)
apeluri. În cazul în care realloc(3) și mremap(2), dacă noua dimensiune a an
alocarea este mai mare decât dimensiunea anterioară, suma tuturor acestor diferențe
(dimensiune nouă minus dimensiunea veche) este adăugată.

morman vârf
Maximul tuturor mărimea argumente ale malloc(3), toate produsele din nmemb*mărimea of
calloc(3), toate mărimea argumente ale realloc(3), lungime argumente ale mmap(2), și
dimensiune_nouă argumente ale mremap(2).

stivui vârf
Înainte de primul apel către orice funcție monitorizată, adresa pointerului stivei
(indicatorul de stivă de bază) este salvat. După fiecare apel de funcție, stiva reală
adresa pointerului este citită și diferența față de indicatorul stivei de bază
calculat. Maximul acestor diferențe este atunci vârful stivei.

Imediat după această linie de rezumat, un tabel arată numărul de apeluri, memoria totală
alocate sau dealocate și numărul de apeluri eșuate pentru fiecare funcție interceptată. Pentru
realloc(3) și mremap(2), câmpul suplimentar „nomove” arată realocările care s-au modificat
adresa unui bloc, iar câmpul suplimentar „dec” arată realocările care au scăzut
dimensiunea blocului. Pentru realloc(3), câmpul suplimentar „gratuit” arată realocările
care a determinat eliberarea unui bloc (adică dimensiunea realocata a fost 0).

„Realloc/memorie totală” a tabelului rezultat de memusage nu reflectă cazurile în care
realloc(3) este folosit pentru a realoca un bloc de memorie pentru a avea o dimensiune mai mică decât anterior.
Acest lucru poate face ca suma tuturor celulelor „memorie totală” (cu excepția „liberului”) să fie mai mare decât cel
celula „memorie liberă/totală”.

Histogramă pentru bloca dimensiuni
„Histograma pentru dimensiunile blocurilor” oferă o defalcare a alocărilor de memorie în diferite
dimensiunile găleților.

OPŢIUNI


-n nume, --program=nume
Numele fișierului de program pentru profil.

-p fişier, --png=fişier
Generați grafic PNG și stocați-l în fişier.

-d fişier, --data=fişier
Generați fișierul de date binare și stocați-l în fişier.

-u, --nebuffered
Nu tamponați ieșirea.

-b mărimea, --buffer=mărimea
Colecta mărimea intrări înainte de a le scrie.

--fără cronometru
Dezactivați bazat pe cronometru (SIGPROF) eșantionarea valorii indicatorului stivei.

-m, --mmap
De asemenea, urmă mmap(2), mremap(2), și munmap(2).

-?, --Ajutor
Imprimați ajutorul și ieșiți.

--utilizare
Imprimați un mesaj scurt de utilizare și ieșiți.

-V, --versiune
Tipăriți informațiile despre versiune și ieșiți.

Următoarele opțiuni se aplică numai la generarea rezultatelor grafice:

-t, --bazat pe timp
Utilizați timpul (mai degrabă decât numărul de apeluri de funcții) ca scară pentru axa X.

-T, --total
De asemenea, desenați un grafic al utilizării totale a memoriei.

--titlu=nume
Utilizare nume ca titlul graficului.

-x mărimea, --x-size=mărimea
Faceți graficul mărimea pixeli lățime.

-y mărimea, --y-size=mărimea
Faceți graficul mărimea pixeli înalți.

EXIT STAREA


Starea de ieșire este egală cu starea de ieșire a programului profilat.

EXEMPLU


Mai jos este un program simplu care realocă un bloc de memorie în cicluri care se ridică la un vârf
înainte de realocarea ciclică a memoriei în blocuri mai mici care revin la zero.
După compilarea programului și rularea următoarelor comenzi, un grafic al memoriei
utilizarea programului poate fi găsită în fișier memusage.png:

$ memusage --data=memusage.dat ./a.out
...
Rezumatul utilizării memoriei: total heap: 45200, heap peak: 6440, stack peak: 224
total apeluri memorie totală apeluri eșuate
malloc| 1 400 0
realloc| 40 44800 0 (nomove:40, dec:19, gratuit:0)
calloc| 0 0 0
liber| 1
Histograma pentru dimensiunile blocurilor:
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

Program sursă
#include
#include

#define CICLURI 20

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

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

pentru (i = 0; i < CICLE; i++) {
dacă (i < CICLURI / 2)
j = i;
altfel
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));
}

liber(p);
ieșire(EXIT_SUCCESS);
}

Utilizați memusage online folosind serviciile onworks.net


Servere și stații de lucru gratuite

Descărcați aplicații Windows și Linux

  • 1
    VBA-M (arhivat - Acum pe Github)
    VBA-M (arhivat - Acum pe Github)
    Proiectul s-a mutat la
    https://github.com/visualboyadvance-m/visualboyadvance-m
    Caracteristici:Creații de înșelăciune salvează stări multiple
    sistem, acceptă gba, gbc, gb, sgb,
    sgb2Tu...
    Descărcați VBA-M (arhivat - Acum pe Github)
  • 2
    Stacer
    Stacer
    Optimizator și monitorizare de sistem Linux
    Depozitul Github:
    https://github.com/oguzhaninan/Stacer.
    Public: utilizatori finali/desktop. Utilizator
    interfață: Qt. Programare La...
    Descărcați Stacer
  • 3
    orangefox
    orangefox
    Furk al TeamWinRecoveryProject (TWRP)
    cu multe funcții suplimentare, reproiectare
    și mai multe Caracteristici: Suportă Treble și
    ROM-uri non-Treble Nucleu Oreo actualizat,
    construit...
    Descărcați OrangeFox
  • 4
    itop - ITSM CMDB OpenSource
    itop - ITSM CMDB OpenSource
    Portal de operațiuni IT: o deschidere completă
    sursă, ITIL, serviciu web
    instrument de management, inclusiv un complet
    CMDB personalizabil, un sistem de asistență și
    un om cu documente...
    Descărcați itop - ITSM CMDB OpenSource
  • 5
    Clementine
    Clementine
    Clementine este o muzică multi-platformă
    jucător și organizator de bibliotecă inspirat de
    Amarok 1.4. Are un rapid și
    interfață ușor de utilizat și vă permite
    cauta si...
    Descărcați Clementine
  • 6
    XISMuS
    XISMuS
    ATENȚIE: Actualizarea cumulativă 2.4.3 are
    fost eliberat!! Actualizarea funcționează pentru orice
    versiunea anterioară 2.xx. Dacă faceți upgrade
    din versiunea v1.xx, vă rugăm să descărcați și
    i ...
    Descărcați XISMuS
  • Mai mult »

Comenzi Linux

Ad