Angielskifrancuskihiszpański

Ad


Ulubiona usługa OnWorks

memusage - Online w chmurze

Uruchom memusage w bezpłatnym dostawcy hostingu OnWorks w systemie Ubuntu Online, Fedora Online, emulatorze online systemu Windows lub emulatorze online systemu MAC OS

To jest polecenie, które można uruchomić w bezpłatnym dostawcy hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS

PROGRAM:

IMIĘ


memusage - profil wykorzystania pamięci przez program

STRESZCZENIE


pamięć [opcja] ... program [opcja programu] ...

OPIS


pamięć to skrypt basha profilujący wykorzystanie pamięci programu, program. To
wstępnie ładuje libmemmusage.so bibliotekę do środowiska wywołującego (za pośrednictwem LD_PRELOAD
Zmienna środowiskowa; zobaczyć ld.so(8)). ten libmemmusage.so biblioteka śledzi alokację pamięci
przechwytując połączenia do malloc(3) Calloc(3) za darmo(3), a reallokacja(3); opcjonalnie dzwoni
do mmap(2) mremap(2), a munmapa(2) można również przechwycić.

pamięć może wyprowadzić zebrane dane w formie tekstowej lub może je wykorzystać stan pamięci(1) (patrz
dotychczasowy -p opcję poniżej), aby utworzyć plik PNG zawierający graficzną reprezentację
Zebrane dane.

Pamięć zwyczaj streszczenie
Wyjście wiersza „Podsumowanie użycia pamięci” przez pamięć zawiera trzy pola:

kupa całkowity
Suma rozmiar argumenty wszystkich malloc(3) wezwania, produkty argumentów
(nmemb*rozmiar) ze wszystkich Calloc(3) połączenia i suma długość argumenty wszystkich mmap(2)
dzwoni. W przypadku reallokacja(3) i mremap(2), jeśli nowy rozmiar pliku
alokacja jest większa niż poprzednia wielkość, suma wszystkich takich różnic
(nowy rozmiar minus stary rozmiar).

kupa szczyt
Maksymalnie ze wszystkich rozmiar argumenty malloc(3), wszystkie produkty nmemb*rozmiar of
Calloc(3), wszystkie rozmiar argumenty reallokacja(3) długość argumenty mmap(2), a
nowy_rozmiar argumenty mremap(2).

stos szczyt
Przed pierwszym wywołaniem dowolnej monitorowanej funkcji adres wskaźnika stosu
(wskaźnik stosu podstawowego) jest zapisywany. Po każdym wywołaniu funkcji aktualny stos
odczytywany jest adres wskaźnika i różnica w stosunku do wskaźnika stosu podstawowego
obliczone. Maksimum tych różnic jest wówczas szczytem stosu.

Zaraz po tym wierszu podsumowania znajduje się tabela przedstawiająca liczbę połączeń i całkowitą pamięć
przydzielonych lub zwolnionych oraz liczbę nieudanych wywołań dla każdej przechwyconej funkcji. Dla
reallokacja(3) i mremap(2), dodatkowe pole „nomove” pokazuje zmiany, które uległy zmianie
adres bloku, a dodatkowe pole „dec” pokazuje, że realokacje spadły
wielkość bloku. Dla reallokacja(3), dodatkowe pole „wolne” pokazuje realokacje
co spowodowało zwolnienie bloku (tj. rozmiar ponownie przydzielonego wynosił 0).

„Realloc/całkowita pamięć” tabeli wyjściowej przez pamięć nie odzwierciedla przypadków, w których
reallokacja(3) służy do ponownego przydzielenia bloku pamięci w celu uzyskania mniejszego rozmiaru niż poprzednio.
Może to spowodować, że suma wszystkich komórek „całkowitej pamięci” (z wyjątkiem „wolnych”) będzie większa niż
komórka „wolna/całkowita pamięć”.

Histogram dla blok rozmiary
„Histogram rozmiarów bloków” przedstawia podział alokacji pamięci na różne
rozmiary wiader.

OPCJE


-n Nazwa, --nazwa_programu=Nazwa
Nazwa pliku programu do profilu.

-p filet, --png=filet
Wygeneruj grafikę PNG i zapisz ją filet.

-d filet, --dane=filet
Wygeneruj plik danych binarnych i zapisz go filet.

-u, --niebuforowane
Nie buforuj danych wyjściowych.

-b rozmiar, --bufor=rozmiar
Zbierać rozmiar wpisy przed ich zapisaniem.

--bez timera
Wyłącz funkcję timera (SIGPROF) próbkowanie wartości wskaźnika stosu.

-m, --mmapa
Również ślad mmap(2) mremap(2), a munmapa(2).

-?, --help
Wydrukuj pomoc i wyjdź.

--stosowanie
Wydrukuj krótką wiadomość dotyczącą użytkowania i zakończ.

-V, --wersja
Wydrukuj informacje o wersji i zakończ.

Poniższe opcje mają zastosowanie tylko podczas generowania wyników graficznych:

-t, --oparty na czasie
Użyj czasu (a nie liczby wywołań funkcji) jako skali osi X.

-T, --całkowity
Narysuj także wykres całkowitego wykorzystania pamięci.

--tytuł=Nazwa
Zastosowanie Nazwa jako tytuł wykresu.

-x rozmiar, --x-rozmiar=rozmiar
Zrób wykres rozmiar szerokość w pikselach.

-y rozmiar, --y-rozmiar=rozmiar
Zrób wykres rozmiar wysokość w pikselach.

EXIT STATUS


Status wyjścia jest równy statusowi wyjścia profilowanego programu.

PRZYKŁAD


Poniżej znajduje się prosty program, który ponownie przydziela blok pamięci w cyklach, które osiągają wartość szczytową
przedtem cykliczna ponowna alokacja pamięci w mniejszych blokach, które powracają do zera.
Po skompilowaniu programu i uruchomieniu poniższych poleceń wykres pamięci
sposób użycia programu znajdziesz w pliku memusage.png:

$ pamięć --data=pamięć.dat ./a.wyj
...
Podsumowanie wykorzystania pamięci: suma sterty: 45200, szczyt sterty: 6440, szczyt stosu: 224
całkowita liczba połączeń całkowita pamięć nieudanych połączeń
mallok| 1 400 0
realokacja| 40 44800 0 (nomove:40, gru:19, free:0)
kaloc| 0 0 0
wolny| 1 440
Histogram dla rozmiarów bloków:
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% ================
$ stan pamięci memusage.dat memusage.png

Program źródło
#włączać
#zawierać

#zdefiniuj CYKLE 20

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

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

for (i = 0; i < CYKLE; i++) {
jeśli (i < CYKLE / 2)
j = ja;
więcej
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));
}

wolny(p);
wyjście (EXIT_SUCCESS);
}

Korzystaj z memusage online, korzystając z usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

  • 1
    VBA-M (zarchiwizowane — teraz na Github)
    VBA-M (zarchiwizowane — teraz na Github)
    Projekt został przeniesiony do
    https://github.com/visualboyadvance-m/visualboyadvance-m
    Cechy:Tworzenie cheatów zapisywanie stanówmulti
    system, obsługuje gba, gbc, gb, sgb,
    sgb2Tu...
    Pobierz VBA-M (zarchiwizowane — teraz na Github)
  • 2
    Stacer
    Stacer
    Optymalizator i monitorowanie systemu Linux
    Repozytorium Github:
    https://github.com/oguzhaninan/Stacer.
    Odbiorcy: użytkownicy końcowi/komputery. Użytkownik
    interfejs: Qt. Programowanie La...
    Pobierz Stacera
  • 3
    PomarańczowyLis
    PomarańczowyLis
    Rozwidlenie TeamWinRecoveryProject (TWRP)
    z wieloma dodatkowymi funkcjami, przeprojektowanie
    i więcej Funkcje: Obsługuje tony wysokie i
    non-Treble ROMs Aktualne jądro Oreo,
    wybudowany...
    Pobierz OrangeFox
  • 4
    itop — ITSM CMDB OpenSource
    itop — ITSM CMDB OpenSource
    Portal operacji IT: pełne otwarcie
    source, ITIL, usługa internetowa
    narzędzie do zarządzania, w tym w pełni
    konfigurowalny CMDB, system pomocy technicznej i
    dokumentalista...
    Pobierz itop - ITSM CMDB OpenSource
  • 5
    Clementine
    Clementine
    Clementine to muzyka wieloplatformowa
    odtwarzacz i organizator biblioteki zainspirowany
    Amarok 1.4. Ma szybki i
    łatwy w użyciu interfejs i pozwala
    szukaj i ...
    Pobierz Clementine
  • 6
    XISMuS
    XISMuS
    UWAGA: Aktualizacja zbiorcza 2.4.3 ma
    został zwolniony!! Aktualizacja działa dla każdego
    poprzednia wersja 2.xx. W przypadku aktualizacji
    od wersji v1.xx proszę pobrać i
    i ...
    Pobierz XISMuS
  • więcej »

Komendy systemu Linux

Ad