EngelsFransSpaans

Ad


OnWorks-favicon

memusage - Online in de cloud

Voer memusage uit in de gratis hostingprovider van OnWorks via Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

Dit is de opdrachtmemusage die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

PROGRAMMA:

NAAM


memusage - profielgeheugengebruik van een programma

KORTE INHOUD


memoires [optie] ... programma [programmaoptie] ...

PRODUCTBESCHRIJVING


memoires is een bash-script dat het geheugengebruik van het programma profileert, programma. Het
laadt de libmemusage.zo bibliotheek in de omgeving van de beller (via de LD_PRELOAD
omgevingsvariabele; zien zo(8)). De libmemusage.zo bibliotheek traceert geheugentoewijzing
door oproepen naar te onderscheppen malloc(3) calloc(3) gratis(3), en herverdeling(3); eventueel bellen
naar mmap(2) meermap(2), en Munmap(2) kan ook worden onderschept.

memoires kan de verzamelde gegevens in tekstvorm uitvoeren, of het kan gebruiken geheugenstatistieken(1) (zie
de -p optie hieronder) om een ​​PNG-bestand te maken met een grafische weergave van het
verzamelde gegevens.

Geheugen gebruik beknopte versie
De uitvoer van de regel "Samenvatting geheugengebruik" door memoires bevat drie velden:

hoop totaal
Som van grootte argumenten van allemaal malloc(3) oproepen, producten van argumenten
(nmb*grootte) van allemaal calloc(3) oproepen en som van lengte argumenten van allemaal mmap(2)
oproepen. In het geval van herverdeling(3) en meermap(2), als de nieuwe grootte van een
toewijzing is groter dan de vorige grootte, de som van al dergelijke verschillen
(nieuwe maat minus oude maat) is toegevoegd.

hoop piek
Maximaal van alles grootte argumenten van malloc(3), alle producten van nmb*grootte of
calloc(3), alle grootte argumenten van herverdeling(3) lengte argumenten van mmap(2), en
nieuwe_maat argumenten van meermap(2).

stack piek
Voor de eerste aanroep van een bewaakte functie, het adres van de stackpointer
(base stack pointer) wordt opgeslagen. Na elke functieaanroep de daadwerkelijke stapel
aanwijzeradres wordt gelezen en het verschil met de basisstapelaanwijzer
berekend. Het maximum van deze verschillen is dan de stack peak.

Onmiddellijk na deze overzichtsregel toont een tabel het aantal oproepen, het totale geheugen
toegewezen of ongedaan gemaakt, en het aantal mislukte oproepen voor elke onderschepte functie. Voor
herverdeling(3) en meermap(2), het extra veld "nomove" toont hertoewijzingen die gewijzigd zijn
het adres van een blok, en het extra veld "dec" toont hertoewijzingen die zijn afgenomen
de grootte van het blok. Voor herverdeling(3), het extra veld "vrij" toont hertoewijzingen
waardoor een blok werd vrijgegeven (dwz de opnieuw toegewezen grootte was 0).

Het "realloc/total memory" van de tabel wordt uitgevoerd door memoires weerspiegelt niet de gevallen waarin
herverdeling(3) wordt gebruikt om een ​​geheugenblok opnieuw toe te wijzen zodat het kleiner is dan voorheen.
Hierdoor kan de som van alle "totale geheugen"-cellen (exclusief "vrij") groter zijn dan de
cel "vrij/totaal geheugen".

histogram For blok maten
Het "Histogram voor blokgroottes" geeft een uitsplitsing van de geheugentoewijzingen in verschillende
emmer maten.

OPTIES


-n naam, --prognaam=naam
Naam van het programmabestand om te profileren.

-p filet, --png=filet
Genereer een PNG-afbeelding en sla deze op filet.

-d filet, --gegevens=filet
Genereer een binair gegevensbestand en sla het op filet.

-u, --niet gebufferd
Buffer de uitvoer niet.

-b grootte, --buffer=grootte
Verzamelen grootte invoeren voordat u ze opschrijft.

--geen timer
Timer-gebaseerd uitschakelen (SIGPROF) bemonstering van de stapelaanwijzerwaarde.

-m, --mmap
Traceren ook mmap(2) meermap(2), en Munmap(2).

-?, --help
Help afdrukken en afsluiten.

--gebruik
Druk een kort gebruiksbericht af en sluit af.

-V, --versie
Versie-informatie afdrukken en afsluiten.

De volgende opties zijn alleen van toepassing bij het genereren van grafische uitvoer:

-t, --tijdsgebaseerd
Gebruik tijd (in plaats van het aantal functieaanroepen) als de schaal voor de X-as.

-T, --totaal
Teken ook een grafiek van het totale geheugengebruik.

--titel=naam
Te gebruiken naam als de titel van de grafiek.

-x grootte, --x-maat=grootte
Maak de grafiek grootte pixels breed.

-y grootte, --y-maat=grootte
Maak de grafiek grootte pixels hoog.

EXIT STATUS


De afsluitstatus is gelijk aan de afsluitstatus van het geprofileerde programma.

VOORBEELD


Hieronder staat een eenvoudig programma dat een geheugenblok opnieuw toewijst in cycli die tot een hoogtepunt stijgen
voordat het geheugen vervolgens cyclisch opnieuw wordt toegewezen in kleinere blokken die terugkeren naar nul.
Na het compileren van het programma en het uitvoeren van de volgende opdrachten, een grafiek van het geheugen
gebruik van het programma is te vinden in het bestand memusage.png:

$ memoires --data=memusage.dat ./a.uit
...
Overzicht geheugengebruik: heap totaal: 45200, heap piek: 6440, stack piek: 224
totaal aantal oproepen totaal geheugen mislukte oproepen
mallok| 1 400 0
realloc| 40 44800 0 (nomove:40, dec:19, vrij:0)
bel| 0 0 0
gratis| 1 440
Histogram voor blokgroottes:
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% ================
$ geheugenstatistieken bericht.dat memusage.png

Programma (bron)
# omvat
#inclusief

#define CYCLI 20

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

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

voor (i = 0; i < CYCLI; i++) {
als (i < CYCLI / 2)
j = ik;
anders
J--;

printf("realloc: %zd\n", sizeof(int) * (j * 50 + 110));
p = realloc(p, groottevan(int) * (j * 50 + 100));

printf("realloc: %zd\n", sizeof(int) * ((j+1) * 150 + 110));
p = realloc(p, groottevan(int) * ((j + 1) * 150 + 110));
}

gratis (p);
afsluiten (EXIT_SUCCESS);
}

Gebruik memusage online met behulp van onworks.net-services


Gratis servers en werkstations

Windows- en Linux-apps downloaden

  • 1
    VBA-M (gearchiveerd - nu op Github)
    VBA-M (gearchiveerd - nu op Github)
    Project is verplaatst naar
    https://github.com/visualboyadvance-m/visualboyadvance-m
    Functies:Cheat creaties opslaan van statenmulti
    systeem, ondersteunt gba, gbc, gb, sgb,
    sgb2Tu...
    VBA-M downloaden (gearchiveerd - nu op Github)
  • 2
    Stacer
    Stacer
    Linux-systeemoptimalisatie en -bewaking
    Github-opslagplaats:
    https://github.com/oguzhaninan/Stacer.
    Doelgroep: eindgebruikers/desktop. Gebruiker
    interface: Qt. Programmeerla...
    Stacer downloaden
  • 3
    oranjevos
    oranjevos
    Vork van TeamWinRecoveryProject (TWRP)
    met veel extra functies, herontwerp
    en meer Kenmerken: Ondersteunt Treble en
    niet-Treble ROM'sUp-to-date Oreo-kernel,
    gebouwd...
    OrangeFox downloaden
  • 4
    itop - ITSM CMDB OpenSource
    itop - ITSM CMDB OpenSource
    IT Operations Portal: een volledig open
    source, ITIL, webgebaseerde service
    managementtool inclusief een volledig
    aanpasbare CMDB, een helpdesksysteem en
    een documentenman...
    Download itop - ITSM CMDB OpenSource
  • 5
    Clementine
    Clementine
    Clementine is een multi-platform muziek
    speler en bibliotheekorganisator geïnspireerd door
    Amarok 1.4. Het heeft een snelle en
    eenvoudig te gebruiken interface, en stelt u in staat om
    zoek en...
    Clementine downloaden
  • 6
    XISMuS
    XISMuS
    LET OP: Cumulatieve update 2.4.3 heeft
    vrijgelaten!! De update werkt voor iedereen
    vorige 2.xx-versie. Als upgraden
    vanaf versie v1.xx, download en
    i ...
    XISMuS downloaden
  • Meer "

Linux-commando's

Ad