IngleseFranceseSpagnolo

Ad


Favicon di OnWorks

memusage - Online nel cloud

Esegui memusage nel provider di hosting gratuito OnWorks su Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

Questo è il comando memusage che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

PROGRAMMA:

NOME


memusage - utilizzo della memoria del profilo di un programma

SINOSSI


messaggio [opzione] ... Programma [opzione di programmazione] ...

DESCRIZIONE


messaggio è uno script bash che profila l'utilizzo della memoria del programma, Programma. Questo
precarica il libmemusage.so libreria nell'ambiente del chiamante (tramite il LD_PRELOAD
variabile d'ambiente; vedere ld.so(8)). Il libmemusage.so la libreria traccia l'allocazione della memoria
intercettando le chiamate a malloc(3) calloc(3) "gratis"(3), e rialloc(3); facoltativamente, chiama
a mmap(2) mremap(2), e munmap(2) può anche essere intercettato.

messaggio può emettere i dati raccolti in forma testuale, oppure può usare memusagestat(1) (vedi
, il -p opzione, sotto) per creare un file PNG contenente la rappresentazione grafica del
dati raccolti.

Memorie uso sommario
L'output della riga "Riepilogo utilizzo memoria" di messaggio contiene tre campi:

heap totale
Somma di Taglia argomenti di tutti malloc(3) chiamate, prodotti di argomenti
(nmemb*Taglia) di tutti calloc(3) chiamate e somma di lunghezza argomenti di tutti mmap(2)
chiamate. In caso di rialloc(3) e mremap(2), se la nuova dimensione di an
l'allocazione è maggiore della dimensione precedente, la somma di tutte queste differenze
(nuova dimensione meno vecchia dimensione).

heap picco
Massimo di tutti Taglia argomenti di malloc(3), tutti i prodotti di nmemb*Taglia of
calloc(3), tutto Taglia argomenti di rialloc(3) lunghezza argomenti di mmap(2), e
nuova_dimensione argomenti di mremap(2).

pila picco
Prima della prima chiamata a qualsiasi funzione monitorata, l'indirizzo del puntatore dello stack
(puntatore dello stack di base) viene salvato. Dopo ogni chiamata di funzione, lo stack effettivo
l'indirizzo del puntatore viene letto e la differenza dal puntatore dello stack di base
calcolato. Il massimo di queste differenze è quindi il picco dello stack.

Subito dopo questa riga riepilogativa, una tabella riporta il numero di chiamate, la memoria totale
allocate o deallocate e numero di chiamate fallite per ciascuna funzione intercettata. Per
rialloc(3) e mremap(2), il campo aggiuntivo "nomove" mostra le riallocazioni che sono cambiate
l'indirizzo di un blocco e il campo aggiuntivo "dec" mostra le riallocazioni che sono diminuite
la dimensione del blocco. Per rialloc(3), il campo aggiuntivo "libero" mostra le riassegnazioni
che ha causato la liberazione di un blocco (ovvero, la dimensione riallocata era 0).

La "realloc/memoria totale" dell'output della tabella di messaggio non riflette i casi in cui
rialloc(3) viene utilizzato per riallocare un blocco di memoria per avere una dimensione inferiore rispetto a prima.
Ciò può far sì che la somma di tutte le celle della "memoria totale" (esclusa quella "libera") sia maggiore del
cella "memoria libera/totale".

Istogramma per bloccare Dimensioni
L'"Istogramma per le dimensioni dei blocchi" fornisce una suddivisione delle allocazioni di memoria in varie
dimensioni del secchio.

VERSIONI


-n Nome, --nomeprogramma=Nome
Nome del file di programma da profilare.

-p filetto, --png=filetto
Genera grafica PNG e salvala in filetto.

-d filetto, --dati=filetto
Genera file di dati binari e salvalo in filetto.

-u, --senza buffer
Non bufferizzare l'output.

-b Taglia, --buffer=Taglia
Collezionare Taglia voci prima di scriverle.

--senza timer
Disabilita basato su timer (SIGPROF) campionamento del valore del puntatore dello stack.

-m, --mappa
anche traccia mmap(2) mremap(2), e munmap(2).

-?, --Aiuto
Stampa la guida ed esci.

--uso
Stampa un breve messaggio di utilizzo ed esci.

-V, --versione
Stampa le informazioni sulla versione ed esci.

Le seguenti opzioni si applicano solo quando si genera un output grafico:

-t, --basato sul tempo
Usa il tempo (piuttosto che il numero di chiamate di funzione) come scala per l'asse X.

-T, --totale
Disegna anche un grafico dell'utilizzo totale della memoria.

--titolo=Nome
Usa il Nome come titolo del grafico.

-x Taglia, --x-dimensione=Taglia
Fai il grafico Taglia pixel di larghezza.

-y Taglia, --y-dimensione=Taglia
Fai il grafico Taglia pixel di altezza.

EXIT STATUS


Lo stato di uscita è uguale allo stato di uscita del programma profilato.

ESEMPIO


Di seguito è riportato un semplice programma che rialloca un blocco di memoria in cicli che raggiungono un picco
prima di riallocare poi ciclicamente la memoria in blocchi più piccoli che tornano a zero.
Dopo aver compilato il programma ed eseguito i seguenti comandi, un grafico della memoria
l'utilizzo del programma può essere trovato nel file memusage.png:

$ messaggio --data=memusage.dat ./a.fuori
...
Riepilogo utilizzo memoria: totale heap: 45200, picco heap: 6440, picco stack: 224
chiamate totali memoria totale chiamate non riuscite
malloc| 1 400 0
realloc| 40 44800 0 (nomove:40, dic:19, libero:0)
calloc| 0 0 0
gratis| 1 440
Istogramma per le dimensioni dei blocchi:
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

Programma source
#includere
#includere

#define CICLI 20

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

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

for (i = 0; i < CICLI; i++) {
se (i < CICLI / 2)
j = io;
altro
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));
}

libero (p);
uscita(EXIT_SUCCESS);
}

Usa memusage online utilizzando i servizi onworks.net


Server e workstation gratuiti

Scarica app per Windows e Linux

  • 1
    VBA-M (archiviato - ora su Github)
    VBA-M (archiviato - ora su Github)
    Il progetto si è spostato in
    https://github.com/visualboyadvance-m/visualboyadvance-m
    Caratteristiche: Creazioni di cheat salva gli stati multi
    sistema, supporta gba, gbc, gb, sgb,
    sgb2Tu...
    Scarica VBA-M (Archiviato - Ora su Github)
  • 2
    Stacer
    Stacer
    Ottimizzatore e monitoraggio del sistema Linux
    Repository Github:
    https://github.com/oguzhaninan/Stacer.
    Pubblico: utenti finali/desktop. Utente
    interfaccia: Qt. Programmazione La...
    Scarica Stacer
  • 3
    Orange Fox
    Orange Fox
    Fork di TeamWinRecoveryProject(TWRP)
    con molte funzioni aggiuntive, riprogettazione
    e più Caratteristiche: Supporta Treble e
    ROM non Treble Kernel Oreo aggiornato,
    costruito...
    Scarica OrangeFox
  • 4
    itop - ITSM CMDB OpenSource
    ittop - ITSM CMDB OpenSource
    Portale delle operazioni IT: un open completo
    sorgente, ITIL, servizio web based
    strumento di gestione compreso un full
    CMDB personalizzabile, un sistema di helpdesk e
    un uomo dei documenti...
    Scarica ittop - ITSM CMDB OpenSource
  • 5
    Clementine
    Clementine
    Clementine è una musica multipiattaforma
    giocatore e organizzatore di librerie ispirato da
    Amarok 1.4. Ha un veloce e
    interfaccia facile da usare, e ti permette di
    cerca e...
    Scarica Clementina
  • 6
    XISMUS
    XISMUS
    ATTENZIONE: l'aggiornamento cumulativo 2.4.3 ha
    stato rilasciato!! L'aggiornamento funziona per qualsiasi
    precedente versione 2.xx. Se stai aggiornando
    dalla versione v1.xx, scaricare e
    i ...
    Scarica XISMuS
  • Di Più "

Comandi Linux

Ad