Man page - memusage(1)
Packages contains this manual
- shm_overview(7)
- nss(5)
- proc_mtrr(5)
- intro(7)
- tcp(7)
- iso_8859-9(7)
- armscii-8(7)
- proc_kpagecount(5)
- initrd(4)
- mouse(4)
- proc_stat(5)
- x25(7)
- proc_interrupts(5)
- fifo(7)
- repertoiremap(5)
- icmp(7)
- futex(7)
- feature_test_macros(7)
- lp(4)
- bpf-helpers(7)
- epoll(7)
- proc_sys_dev(5)
- namespaces(7)
- proc_sysrq-trigger(5)
- proc_bus(5)
- cp1251(7)
- proc_pid_maps(5)
- proc_sys_vm(5)
- proc_pid_projid_map(5)
- st(4)
- proc_pid(5)
- issue(5)
- pid_namespaces(7)
- unicode(7)
- inode(7)
- hosts.equiv(5)
- iso-8859-13(7)
- proc_fb(5)
- proc_modules(5)
- proc_pid_autogroup(5)
- keyrings(7)
- sysvipc(7)
- proc_kmsg(5)
- cgroups(7)
- latin6(7)
- proc_pid_uid_map(5)
- unix(7)
- proc_pid_io(5)
- pts(4)
- packet(7)
- ld-linux.so(8)
- tzselect(8)
- iconv(1)
- proc_pid_syscall(5)
- proc_pid_net(5)
- proc_pid_pagemap(5)
- tty(4)
- proc_profile(5)
- standards(7)
- proc_pid_mounts(5)
- filesystems(5)
- iso-8859-15(7)
- locale(5)
- iso_8859_3(7)
- xattr(7)
- iso-8859-2(7)
- proc_uptime(5)
- persistent-keyring(7)
- credentials(7)
- proc_pid_timers(5)
- utmpx(5)
- vcsa(4)
- proc_pid_exe(5)
- proc_net(5)
- proc_timer_stats(5)
- ip(7)
- proc_pid_fd(5)
- ptmx(4)
- user_namespaces(7)
- resolv.conf(5)
- url(7)
- iso_8859_5(7)
- iso_8859-8(7)
- urn(7)
- process-keyring(7)
- proc_pid_auxv(5)
- proc_ksyms(5)
- proc_ide(5)
- veth(4)
- ldd(1)
- proc_swaps(5)
- landlock(7)
- proc_vmstat(5)
- system_data_types(7)
- cp1252(7)
- lirc(4)
- proc_kpageflags(5)
- random(7)
- precedence(7)
- cpuset(7)
- proc_pid_ns(5)
- acct(5)
- latin4(7)
- proc_pid_cgroup(5)
- proc_cpuinfo(5)
- iso_8859-2(7)
- proc_keys(5)
- charsets(7)
- pldd(1)
- proc_pid_stat(5)
- rtnetlink(7)
- netlink(7)
- ram(4)
- mem(4)
- iso-8859-6(7)
- proc_key-users(5)
- iso_8859_15(7)
- fanotify(7)
- proc_sys_net(5)
- sysfs(5)
- math_error(7)
- latin1(7)
- proc_pid_root(5)
- nptl(7)
- proc_cgroups(5)
- proc_iomem(5)
- proc_pid_statm(5)
- sem_overview(7)
- hier(7)
- full(4)
- proc_pid_status(5)
- proc_pid_cwd(5)
- proc_pid_cpuset(5)
- proc_scsi(5)
- uri(7)
- proc_diskstats(5)
- iso_8859_6(7)
- latin2(7)
- latin5(7)
- man-pages(7)
- ld.so(8)
- uts_namespaces(7)
- proc_pid_mountstats(5)
- intro(3)
- proc_pid_seccomp(5)
- proc_pid_wchan(5)
- attributes(7)
- symlink(7)
- mount_namespaces(7)
- charmap(5)
- tis-620(7)
- iso-8859-10(7)
- getent(1)
- proc_buddyinfo(5)
- ttytype(5)
- rtc(4)
- proc_malloc(5)
- suffixes(7)
- sln(8)
- signal(7)
- proc_sys_abi(5)
- signal-safety(7)
- time_namespaces(7)
- proc_pid_comm(5)
- raw(7)
- gai.conf(5)
- proc_crypto(5)
- locale(1)
- iso-8859-3(7)
- motd(5)
- proc_meminfo(5)
- iso-8859-8(7)
- protocols(5)
- proc_pid_map_files(5)
- pthreads(7)
- null(4)
- proc(5)
- zdump(8)
- socket(7)
- proc_sys_kernel(5)
- ddp(7)
- memusagestat(1)
- hd(4)
- iso-8859-14(7)
- shells(5)
- pipe(7)
- glob(7)
- proc_self(5)
- network_namespaces(7)
- utmp(5)
- proc_kcore(5)
- nsswitch.conf(5)
- sd(4)
- iso-8859-5(7)
- iso_8859_16(7)
- man(7)
- iso_8859-6(7)
- dir_colors(5)
- mq_overview(7)
- vsock(7)
- ascii(7)
- thread-keyring(7)
- fs(5)
- proc_pid_attr(5)
- proc_sys_debug(5)
- proc_sys(5)
- proc_pid_cmdline(5)
- pty(7)
- services(5)
- cgroup_namespaces(7)
- securetty(5)
- netdevice(7)
- iso_8859_13(7)
- host.conf(5)
- proc_pid_setgroups(5)
- proc_slabinfo(5)
- sock_diag(7)
- iso_8859-14(7)
- iso-8859-11(7)
- iso_8859_11(7)
- operator(7)
- regex(7)
- wavelan(4)
- proc_sys_fs(5)
- nologin(5)
- proc_pci(5)
- koi8-r(7)
- erofs(5)
- intro(2)
- utf8(7)
- proc_kallsyms(5)
- proc_sysvipc(5)
- queue(7)
- proc_sys_sunrpc(5)
- intro(5)
- latin8(7)
- mtrace(1)
- ipc_namespaces(7)
- dsp56k(4)
- iso_8859_4(7)
- proc_pid_smaps(5)
- proc_cmdline(5)
- rpc(5)
- proc_tty(5)
- proc_version(5)
- smartpqi(4)
- proc_pid_timerslack_ns(5)
- aio(7)
- session-keyring(7)
- resolver(5)
- slabinfo(5)
- wtmp(5)
- iso_8859_9(7)
- proc_locks(5)
- mailaddr(7)
- proc_pid_oom_score(5)
- kmem(4)
- iconvconfig(8)
- iso_8859-7(7)
- glibc(7)
- hostname(7)
- proc_thread-self(5)
- ipv6(7)
- iso_8859_7(7)
- proc_kpagecgroup(5)
- core(5)
- time(7)
- units(7)
- proc_dma(5)
- loop(4)
- address_families(7)
- zero(4)
- intro(4)
- procfs(5)
- iso_8859-4(7)
- vdso(7)
- tmpfs(5)
- iso-8859-16(7)
- iso_8859_10(7)
- user-session-keyring(7)
- libc(7)
- proc_fs(5)
- koi8-u(7)
- latin3(7)
- proc_tid_children(5)
- proc_pid_limits(5)
- proc_pid_coredump_filter(5)
- iso_8859-15(7)
- arp(7)
- urandom(4)
- iso_8859-10(7)
- hpsa(4)
- proc_pid_environ(5)
- boot(7)
- ftm(7)
- ld-linux(8)
- proc_driver(5)
- loop-control(4)
- iso_8859-16(7)
- proc_filesystems(5)
- tzfile(5)
- sprof(1)
- proc_pid_task(5)
- proc_pid_oom_score_adj(5)
- proc_mounts(5)
- iso-8859-4(7)
- iso_8859-1(7)
- utf-8(7)
- iso_8859-13(7)
- intro(6)
- proc_timer_list(5)
- rtld-audit(7)
- iso_8859-3(7)
- group(5)
- sched(7)
- proc_pid_clear_refs(5)
- hosts(5)
- iso_8859-11(7)
- numa(7)
- iso_8859_2(7)
- locale(7)
- iso-8859-1(7)
- fuse(4)
- proc_tid(5)
- proc_execdomains(5)
- proc_pid_mountinfo(5)
- intro(8)
- iso_8859_8(7)
- proc_loadavg(5)
- proc_pid_oom_adj(5)
- re_format(7)
- iso_8859_14(7)
- zic(8)
- bootparam(7)
- inotify(7)
- posixoptions(7)
- proc_partitions(5)
- iso-8859-9(7)
- proc_pid_mem(5)
- networks(5)
- proc_sys_user(5)
- udp(7)
- proc_zoneinfo(5)
- latin10(7)
- proc_pid_fdinfo(5)
- proc_pid_stack(5)
- memusage(1)
- spufs(7)
- pkeys(7)
- path_resolution(7)
- proc_ioports(5)
- intro(1)
- ldconfig(8)
- msr(4)
- svipc(7)
- port(4)
- proc_pid_personality(5)
- cciss(4)
- latin9(7)
- capabilities(7)
- localedef(1)
- vcs(4)
- iso_8859-5(7)
- elf(5)
- proc_sys_proc(5)
- console_codes(4)
- random(4)
- iso-8859-7(7)
- termcap(5)
- cpuid(4)
- environ(7)
- string_copying(7)
- proc_pid_gid_map(5)
- queue(3)
- termio(7)
- user-keyring(7)
- complex(7)
- latin7(7)
- proc_config.gz(5)
- udplite(7)
- kernel_lockdown(7)
- proc_devices(5)
- proc_apm(5)
- iso_8859_1(7)
- proc_pid_numa_maps(5)
apt-get install manpages
Available languages:
en fr da ja ru ro deManual
memusage
NOMSYNOPSIS
DESCRIPTION
RĂ©sumĂ© de lâutilisation de la mĂ©moire
Histogrammes des tailles de bloc
OPTIONS
CODE DE RETOUR
BOGUES
EXEMPLES
Source du programme
VOIR AUSSI
TRADUCTION
NOM
memusage - Profiler lâutilisation par un programme de la mĂ©moire
SYNOPSIS
memusage [ option ]... programme [ optionprogramme ]...
DESCRIPTION
memusage est un script bash qui profile lâutilisation de la mĂ©moire par le programme programme . Il prĂ©charge la bibliothĂšque libmemusage.so dans lâenvironnement de lâappelant (au moyen de la variable dâenvironnement LD_PRELOAD ; voir ld.so (8)). La bibliothĂšque libmemusage.so trace lâallocation de mĂ©moire en interceptant les appels Ă malloc (3), calloc (3), free (3) et realloc (3) ; facultativement, les appels Ă mmap (2), mremap (2) et munmap (2) peuvent aussi ĂȘtre interceptĂ©s.
memusage peut produire les donnĂ©es collectĂ©es sous une forme textuelle ou il peut utiliser memusagestat (1) (voir lâoption -p ci-dessous) pour crĂ©er un fichier PNG fournissant la reprĂ©sentation graphique des donnĂ©es collectĂ©es.
RĂ©sumĂ© de lâutilisation de la mĂ©moire
La ligne « Memory usage summary » produite par memusage contient trois champs :
heap total
Somme des paramĂštres taille de tous les appels malloc (3), les produits ( nmemb * taille ) de tous les appels calloc (3) et la somme des paramĂštres longueur de tous les appels mmap (2). Dans le cas dâappels realloc (3) et mremap (2), si la nouvelle taille dâune allocation est plus grande que la taille prĂ©cĂ©dente, la somme de toutes les diffĂ©rences (nouvelle taille moins ancienne taille) est ajoutĂ©e.
heap peak
Maximum de tous les paramĂštres taille de malloc (3), de tous les produits ( nmemb * taille ) de calloc (3) et de tous les paramĂštres taille de realloc , des paramĂštres longueur de mmap (2) et des paramĂštres nouvelle_taille de mremap (2).
stack peak
Avant le premier appel Ă toute fonction suivie, lâadresse du pointeur de pile (pointeur de pile de base) est sauvegardĂ©e. AprĂšs chaque appel de fonction, lâadresse du pointeur de pile effectif est lue et la diffĂ©rence avec le pointeur de pile de base est calculĂ©e. La plus grande de ces diffĂ©rences est alors le « pic de la pile » (« stack peak »).
ImmĂ©diatement aprĂšs la ligne de rĂ©sumĂ©, un tableau montre le nombre dâappels, le total de la mĂ©moire allouĂ©e ou dĂ©sallouĂ©e et le nombre dâĂ©checs dâappels pour chaque fonction interceptĂ©e. Pour realloc (3) et mremap (2), le champ supplĂ©mentaire « nomove » montre les rĂ©allocations qui ont changĂ© lâadresse dâun bloc et le champ supplĂ©mentaire « dec » montre les rĂ©allocations qui ont diminuĂ© la taille du bloc. Pour realloc (3), le champ supplĂ©mentaire « free » montre les rĂ©allocations qui ont provoquĂ© la libĂ©ration dâun bloc (câest-Ă -dire dont la taille rĂ©allouĂ©e est de 0 ).
La colonne « realloc/total memory » du tableau produit par memusage ne reflĂšte pas les cas oĂč realloc (3) est utilisĂ© pour rĂ©allouer un bloc de mĂ©moire pour quâil ait une taille plus petite quâavant. Ce cas peut faire que la somme de toutes les cellules « total memory » (sauf « free ») est plus grande que la cellule « free/total memory ».
Histogrammes des tailles de bloc
Lâ« Histogram for block sizes » fournit une rĂ©partition des allocations de mĂ©moire en paquets de tailles diverses.
OPTIONS
-n nom , --progname= nom
Nom du fichier de programme Ă profiler.
-p fichier , --png= fichier
CrĂ©er un fichier graphique PNG et lâenregistrer dans fichier .
-d fichier , --data= fichier
CrĂ©er un fichier de donnĂ©es binaires et lâenregistrer dans fichier .
-u , --unbuffered
Ne pas mettre la sortie en tampon.
-b taille , --buffer= taille
Rassembler les entrées de taille avant de les écrire.
--no-timer
DĂ©sactiver lâĂ©chantillonnage basĂ© sur le temporisateur ( SIGPROF ) de la valeur du pointeur de pile.
-m , --mmap
Tracer aussi mmap (2), mremap (2) et munmap (2).
-? , --help
Afficher lâaide puis quitter.
--usage
Afficher une brĂšve description sur lâutilisation et quitter.
-V , --version
Afficher les informations de version, puis quitter.
Les options suivantes ne
sâappliquent que lors de la crĂ©ation
dâune
sortie graphique :
-t
,
--time-based
Utiliser le temps (plutĂŽt que le nombre dâappels de fonction) comme Ă©chelle de lâaxe X.
-T , --total
CrĂ©er aussi un graphique de lâusage total de la mĂ©moire.
--title= nom
Utiliser nom comme titre du graphique.
-x taille , --x-size= taille
CrĂ©er un graphique dâune largeur de taille pixels.
-y taille , --y-size= taille
CrĂ©er un graphique dâune hauteur de taille pixels.
CODE DE RETOUR
Le code de retour est égal au code de retour du programme profilé.
BOGUES
Pour signaler des bogues, voir http://www.gnu.org/software/libc/bugs.html
EXEMPLES
Ci-dessous se trouve un programme simple qui rĂ©alloue de façon cyclique un bloc de mĂ©moire qui atteint un sommet avant de rĂ©allouer la mĂ©moire de façon cyclique dans des blocs plus petits qui diminuent jusquâĂ zĂ©ro. AprĂšs compilation du programme et exĂ©cution des commandes suivantes, un graphique de lâutilisation de la mĂ©moire par le programme se trouve dans le fichier 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
Source du programme
#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);
}
VOIR AUSSI
memusagestat (1), mtrace (1), ld.so (8)
TRADUCTION
La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>
Cette traduction est une documentation libre ; veuillez vous reporter Ă la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il nây a aucune RESPONSABILITĂ LĂGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .