Provided by: manpages-da_4.27.0-1_all bug

NAVN

       memusage - lav en profil over forbruget af hukommelse for et program

SYNOPSIS

       memusage [tilvalg]... program [programtilvalg]...

BESKRIVELSE

       memusage  er  et  bash-skript,  der  profilerer  brugen af hukommelse for programmet program. Biblioteket
       libmemusage.so indlæses først i kalderens miljø (via miljøvariablen LD_PRELOAD; se ld.so(8)). Biblioteket
       libmemusage.so registrerer hukommelsesallokering ved at opfange kald til malloc(3), calloc(3), free(3) og
       realloc(3); valgfrit kan kald til mmap(2), mremap(2) og munmap(2) også opfanges.

       memusage kan vise de indsamlede data i tekstform, eller kan bruge memusagestat(1) (se tilvalget  the  -p,
       nedenfor) til at oprette en PNG-fil indeholdende grafisk repræsentation af de indsamlede data.

   Overblik over hukommelsesforbruget
       »Overblik over hukommelsesforbruget«-linjeresultatet fra memusage indeholder tre felter:

           heap total
                  Sum    af   størrelse-argumenter   for   alle   malloc(3)-kald,   produkter   for   argumenter
                  (nmemb*størrelse)  for  alle  calloc(3)-kald  og  summen   af   længde-argumenter   for   alle
                  mmap(2)-kald. I tilfældet realloc(3) og mremap(2), hvis den nye størrelse for en allokering er
                  større  end  den  tidligere  størrelse,  så  tilføjes  summen  for  alle sådanne forskelle (ny
                  størrelse minus gammel størrelse).

           heap peak
                  Maksimum for alle størrelse-argumenter for malloc(3), alle produkter for  nmemb*størrelse  for
                  calloc(3),   alle  størrelse-argumenter  for  realloc(3),  længde-argumenter  for  mmap(2)  og
                  nu_størrelse-argumenter for mremap(2).

           stack peak
                  Før  det  første  kald   til   enhver   overvåget   funktion   så   gemmes   stakpegeradressen
                  (grundstakpegeren).  Efter  hvert  funktionskald  så  læses  den  faktiske  stakpegeradrese og
                  forskellen fra grundstakpegeren beregnes. Maksimum for disse forskelle er hvor  stakken  havde
                  toppunkt.

       Umiddelbart  efter  denne  summerede  linje  viser en tabel antallet af kald, samlet hukommelse allokeret
       eller deallokeret samt antallet af  mislykkede  kald  for  hver  opfanget  funktion.  For  realloc(3)  og
       mremap(2),  viser det ekstra felt »nomove« reallokeringer, der ændrede adressen for en blok og det ekstra
       felt »dec« viser reallokeringer, der formindskede blokstørrelsen. For realloc(3) viser  det  ekstra  felt
       »free« reallokeringer der fik en blok til at blive frigivet (dvs. den reallokerede størrelse var 0).

       »realloc/total  memory« for tabelresultatet fra memusage reflekterer ikke tilfælde hvor realloc(3) bruges
       til at reallokere en hukommelsesblok til en mindre størrelse end tidligere. Dette kan medføre at sum  for
       alle »total memory«-celler (eksklusive »free«) er større end »free/total memory«-cellen.

   Histogram for blokstørrelser
       »Histogram   for   blokstørrelser«   tilbyder  en  nedbrydning  af  hukommelsesallokeringer  til  diverse
       bucket-størrelser.

TILVALG

       -n navn, --progname=navn
              Navn på programfilen der skal profileres.

       -p fil, --png=fil
              Opret PNG-grafik og lagr denne i fi.

       -d fil, --data=fil
              Opret binær datafil og lagr denne i fil.

       -u, --unbuffered
              Mellemlagr ikke resultatet.

       -b størrelse, --buffer=størrelse
              Indsaml størrelse-elementer før de skrives.

       --no-timer
              Deaktiver timer-baseret (SIGPROF) sampling af stakpegerværdi.

       -m, --mmap
              Registrer også mmap(2), mremap(2) og munmap(2).

       -?, --help
              Vis hjælpeteksten og afslut.

       --usage
              Vis en kort brugsbesked og afslut.

       -V, --version
              Vis versionsinformation og afslut.

       De følgende tilvalg er kun gælden når der oprettes grafik:

       -t, --time-based
              Brugstid (frem for antallet af funktionskald) som skala for x-aksen.

       -T, --total
              Tegn også en graf over den samlede brug af hukommelse.

       --title=navn
              Use navn som grafens titel.

       -x størrelse, --x-size=størrelse
              Gør grafen størrelse billedpunkter bred.

       -y størrelse, --y-size=størrelse
              Gør grafen størrelse billedpunkter høj.

AFSLUT-STATUS

       Afslutningsstatus for memusage svarer til afslutningsstatus for det profilerede program.

FEJL

       For at rapportere fejl, se http://www.gnu.org/software/libc/bugs.html

EKSEMPLER

       Nedenfor er et simpelt program, der reallokerer  en  hukommelsesblok  i  cyklusser,  der  stiger  til  et
       toppunkt  før  cyklist  reallokering  af  hukommelsen  i  mindre  blokke,  der  returnerer til nul. Efter
       kompilering af programmet og afvikling af de følgende kommandoer kan en  graf  over  hukommelsesforbruget
       findes i filen memusage.png:

           $ memusage --data=memusage.dat ./a.out
           ...
           Memory usage summary: heap total: 45200, heap peak: 6440, stack peak: 224
                   total calls  total memory  failed calls
            malloc|         1           400             0
           realloc|        40         44800             0  (nomove:40, dec:19, free:0)
            calloc|         0             0             0
              free|         1           440
           Histogram for block sizes:
             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

   Programkilde
       #include <stdio.h>
       #include <stdlib.h>

       #define CYCLES 20

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

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

           for (i = 0; i < CYCLES; i++) {
               if (i < CYCLES / 2)
                   j = i;
               else
                   j--;

               size = sizeof(*p) * (j * 50 + 110);
               printf("realloc: %zu\n", size);
               p = realloc(p, size);

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

           free(p);
           exit(EXIT_SUCCESS);
       }

SE OGSÅ

       memusagestat(1), mtrace(1), ld.so(8)

OVERSÆTTELSE

       Oversættere af denne manual til dansk Joe Hansen <joedalton2@yahoo.dk>

       Denne  oversættelse  er  gratis  dokumentation;  læs GNU General Public License version 3 eller nyere for
       ophavsretbetingelser. Der er INGEN ANSVAR.

       Hvis du støder på fejl i oversættelsen af ​​denne vejledning, skal du sende en  besked  til  debian-l10n-
       danish@lists.debian.org.

Linux man-pages 6.9.1                             15. juni 2024                                      memusage(1)