<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://haypo.alwaysdata.net:443/wiki/skins/common/feed.css?63"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>MÃ©moire - Historique des versions</title>
		<link>http://haypo.alwaysdata.net:443/wiki/index.php?title=M%C3%83%C2%A9moire&amp;action=history</link>
		<description>Historique pour cette page sur le wiki</description>
		<language>fr</language>
		<generator>MediaWiki 1.10.1</generator>
		<lastBuildDate>Thu, 30 Apr 2026 20:15:00 GMT</lastBuildDate>
		<item>
			<title>Haypo: /* Pile */</title>
			<link>http://haypo.alwaysdata.net:443/wiki/index.php?title=M%C3%83%C2%A9moire&amp;diff=6449&amp;oldid=prev</link>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Pile&lt;/span&gt;&lt;/p&gt;

			&lt;table border='0' width='98%' cellpadding='0' cellspacing='4' style=&quot;background-color: white;&quot;&gt;
			&lt;tr&gt;
				&lt;td colspan='2' width='50%' align='center' style=&quot;background-color: white;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan='2' width='50%' align='center' style=&quot;background-color: white;&quot;&gt;Version du 21 août 2007 à 21:09&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; align=&quot;left&quot;&gt;&lt;strong&gt;Ligne 118&amp;nbsp;:&lt;/strong&gt;&lt;/td&gt;
&lt;td colspan=&quot;2&quot; align=&quot;left&quot;&gt;&lt;strong&gt;Ligne 118&amp;nbsp;:&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;On peut changer la taille de la pile initiale lors de la compilation, via la commande : Â« ld --stack=... Â».&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;On peut changer la taille de la pile initiale lors de la compilation, via la commande : Â« ld --stack=... Â».&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; font-size: smaller;&quot;&gt;Pour dÃ©tecter le dÃ©passement de la pile (Â« notifiÃ©e Â» par un signal SIGSEGV envoyÃ© par le noyau), on peut utiliser le programme : &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[http://www.haypocalc.com/perso/prog&lt;/del&gt;/stack.c stack.c&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/del&gt;.&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; font-size: smaller;&quot;&gt;Pour dÃ©tecter le dÃ©passement de la pile (Â« notifiÃ©e Â» par un signal SIGSEGV envoyÃ© par le noyau), on peut utiliser le programme : &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;{{HaypoSVN svnweb link|misc&lt;/ins&gt;/stack.c&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;|&lt;/ins&gt;stack.c&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;}}&lt;/ins&gt;.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;On peut utiliser une pile dÃ©diÃ© aux gestionnaires de signal avec signaltstack().&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;On peut utiliser une pile dÃ©diÃ© aux gestionnaires de signal avec signaltstack().&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Tue, 21 Aug 2007 21:09:40 GMT</pubDate>			<dc:creator>Haypo</dc:creator>			<comments>http://haypo.alwaysdata.net:443/wiki/Discuter:M%C3%83%C2%A9moire</comments>		</item>
		<item>
			<title>Haypo: /* Mémoire et Xorg */</title>
			<link>http://haypo.alwaysdata.net:443/wiki/index.php?title=M%C3%83%C2%A9moire&amp;diff=6434&amp;oldid=prev</link>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Mémoire et Xorg&lt;/span&gt;&lt;/p&gt;

			&lt;table border='0' width='98%' cellpadding='0' cellspacing='4' style=&quot;background-color: white;&quot;&gt;
			&lt;tr&gt;
				&lt;td colspan='2' width='50%' align='center' style=&quot;background-color: white;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan='2' width='50%' align='center' style=&quot;background-color: white;&quot;&gt;Version du 21 août 2007 à 12:43&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; align=&quot;left&quot;&gt;&lt;strong&gt;Ligne 101&amp;nbsp;:&lt;/strong&gt;&lt;/td&gt;
&lt;td colspan=&quot;2&quot; align=&quot;left&quot;&gt;&lt;strong&gt;Ligne 101&amp;nbsp;:&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt; * VmLib : MÃ©moire des bibliothÃ¨ques partagÃ©es&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt; * VmLib : MÃ©moire des bibliothÃ¨ques partagÃ©es&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt; * VmPTE : ???&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt; * VmPTE : ???&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; font-size: smaller;&quot;&gt;== ELC ==&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; font-size: smaller;&quot;&gt;Matt Mackall prÃ©pare des patchs pour le noyau Linux permettant d'avoir une meilleure idÃ©e de la mÃ©moire utilisÃ©e par une application : http://lwn.net/Articles/230975/&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;== MÃ©moire et Xorg ==&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;== MÃ©moire et Xorg ==&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Tue, 21 Aug 2007 12:43:06 GMT</pubDate>			<dc:creator>Haypo</dc:creator>			<comments>http://haypo.alwaysdata.net:443/wiki/Discuter:M%C3%83%C2%A9moire</comments>		</item>
		<item>
			<title>Haypo: /* Pile */</title>
			<link>http://haypo.alwaysdata.net:443/wiki/index.php?title=M%C3%83%C2%A9moire&amp;diff=6433&amp;oldid=prev</link>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Pile&lt;/span&gt;&lt;/p&gt;

			&lt;table border='0' width='98%' cellpadding='0' cellspacing='4' style=&quot;background-color: white;&quot;&gt;
			&lt;tr&gt;
				&lt;td colspan='2' width='50%' align='center' style=&quot;background-color: white;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan='2' width='50%' align='center' style=&quot;background-color: white;&quot;&gt;Version du 21 août 2007 à 12:40&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; align=&quot;left&quot;&gt;&lt;strong&gt;Ligne 122&amp;nbsp;:&lt;/strong&gt;&lt;/td&gt;
&lt;td colspan=&quot;2&quot; align=&quot;left&quot;&gt;&lt;strong&gt;Ligne 122&amp;nbsp;:&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;[[gcc]] a plusiers options relatives Ã  la gestion de la pile:&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;[[gcc]] a plusiers options relatives Ã  la gestion de la pile:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;* Â« -fstack-check Â»&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;* Â« -fstack-check Â»&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; font-size: smaller;&quot;&gt;* Â« -mmax-stack-frame=n Â» : Avertissement si une fonction utilise plus de ''n'' octets de pile&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; font-size: smaller;&quot;&gt;* Â« -mmax-stack-frame=n Â» : Avertissement si une fonction utilise plus de ''n'' octets de pile &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;= ne fonctionne que pour l'architecture CRIS&lt;/ins&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;* Â« -fstack-limit-register=reg Â»&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;* Â« -fstack-limit-register=reg Â»&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;* Â«-fstack-limit-symbol=sym Â»&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;* Â«-fstack-limit-symbol=sym Â»&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Tue, 21 Aug 2007 12:40:06 GMT</pubDate>			<dc:creator>Haypo</dc:creator>			<comments>http://haypo.alwaysdata.net:443/wiki/Discuter:M%C3%83%C2%A9moire</comments>		</item>
		<item>
			<title>Haypo: /* Pile */</title>
			<link>http://haypo.alwaysdata.net:443/wiki/index.php?title=M%C3%83%C2%A9moire&amp;diff=6432&amp;oldid=prev</link>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Pile&lt;/span&gt;&lt;/p&gt;

			&lt;table border='0' width='98%' cellpadding='0' cellspacing='4' style=&quot;background-color: white;&quot;&gt;
			&lt;tr&gt;
				&lt;td colspan='2' width='50%' align='center' style=&quot;background-color: white;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan='2' width='50%' align='center' style=&quot;background-color: white;&quot;&gt;Version du 21 août 2007 à 12:13&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; align=&quot;left&quot;&gt;&lt;strong&gt;Ligne 116&amp;nbsp;:&lt;/strong&gt;&lt;/td&gt;
&lt;td colspan=&quot;2&quot; align=&quot;left&quot;&gt;&lt;strong&gt;Ligne 116&amp;nbsp;:&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;Pour dÃ©tecter le dÃ©passement de la pile (Â« notifiÃ©e Â» par un signal SIGSEGV envoyÃ© par le noyau), on peut utiliser le programme : [http://www.haypocalc.com/perso/prog/stack.c stack.c].&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;Pour dÃ©tecter le dÃ©passement de la pile (Â« notifiÃ©e Â» par un signal SIGSEGV envoyÃ© par le noyau), on peut utiliser le programme : [http://www.haypocalc.com/perso/prog/stack.c stack.c].&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; font-size: smaller;&quot;&gt;On peut utiliser une pile dÃ©diÃ© aux gestionnaires de signal avec &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;sigaltstack&lt;/del&gt;().&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; font-size: smaller;&quot;&gt;On peut utiliser une pile dÃ©diÃ© aux gestionnaires de signal avec &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;signaltstack&lt;/ins&gt;().&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;On peut limiter la taille de la pile d'un thread avec pthread_attr_setstacksize().&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;On peut limiter la taille de la pile d'un thread avec pthread_attr_setstacksize().&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Tue, 21 Aug 2007 12:13:47 GMT</pubDate>			<dc:creator>Haypo</dc:creator>			<comments>http://haypo.alwaysdata.net:443/wiki/Discuter:M%C3%83%C2%A9moire</comments>		</item>
		<item>
			<title>Haypo: /* Mémoire et Xorg */</title>
			<link>http://haypo.alwaysdata.net:443/wiki/index.php?title=M%C3%83%C2%A9moire&amp;diff=6353&amp;oldid=prev</link>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Mémoire et Xorg&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[CatÃ©gorie:Programmation]]&lt;br /&gt;
{{Retour|Programmation|Retour aux articles de programmation}}&lt;br /&gt;
&lt;br /&gt;
Notes sur l'utilisation de la mÃ©moire dans un programme.&lt;br /&gt;
&lt;br /&gt;
== Ã‰tat actuel ==&lt;br /&gt;
&lt;br /&gt;
=== Savoir lire l'Ã©tat de la mÃ©moire ===&lt;br /&gt;
&lt;br /&gt;
Lorsqu'on fait un '''top''', on a des fois des sueurs froides en interprÃ©tant mal les diffÃ©rentes colonnes.&lt;br /&gt;
 $ top&lt;br /&gt;
 ...&lt;br /&gt;
 (je tape M pour trier par utilisation de la mÃ©moire)&lt;br /&gt;
 ...&lt;br /&gt;
   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND&lt;br /&gt;
 15404 haypo     15   0 73240  40m  22m S  0.3  8.2   0:35.20 konqueror&lt;br /&gt;
 22370 root      15   0  359m  22m 2800 S  0.0  4.6   9:12.06 Xorg&lt;br /&gt;
 12098 haypo     15   0 89944  19m 7740 S  0.0  3.8   0:18.36 gajim.py&lt;br /&gt;
 14355 haypo     15   0 40836  11m 7388 S  0.0  2.3   0:30.56 gvim&lt;br /&gt;
&lt;br /&gt;
Colonnes concernant la mÃ©moire :&lt;br /&gt;
* '''VIRT''' : Taille de la mÃ©moire virtuelle. Notion assez lointaine de l'utilisation mÃ©moire. En gros, c'est la taille totale que pourrait atteindre un programme s'il utilisait toute la mÃ©moire. Or cette valeur est trÃ¨s loin de l'utilisation rÃ©elle.&lt;br /&gt;
* '''RES''' : MÃ©moire Â« rÃ©sidente Â». C'est cette valeur qu'il faut lire en premier quand on veut savoir quel programme utilise toute la mÃ©moire. C'est la mÃ©moire qu'un programme utilise rÃ©elle et juste pour son usage personnel.&lt;br /&gt;
* '''SHR''' : MÃ©moire Â« partagÃ©e Â». C'est la mÃ©moire utilisÃ©e partagÃ©es avec les autres processus.&lt;br /&gt;
&lt;br /&gt;
Â« ''RSS. Taille de lâ€™ensemble rÃ©sident : nombre de pages dont le processus dispose en mÃ©moire rÃ©elle,  moins  3  pour  des raisons administratives. Il sâ€™agit juste des pages contenant les espaces de code, donnÃ©e et pile. Ceci nâ€™inclut ni les pages en attente de chargement ni celles qui ont Ã©tÃ© swappÃ©es.'' Â»&lt;br /&gt;
&lt;br /&gt;
=== getrusage() ===&lt;br /&gt;
&lt;br /&gt;
La fonction getrusage() renseigne l'utilisation des ressources du processus courant. Champs renseignant sur l'Ã©tat de la mÃ©moire :&lt;br /&gt;
* ru_maxrss : Taille rÃ©sidente maximale&lt;br /&gt;
* ru_ixrss : Taille de mÃ©moire partagÃ©e&lt;br /&gt;
* ru_idrss : Taille des donnÃ©es non partagÃ©es&lt;br /&gt;
* ru_isrss : Taille de pile&lt;br /&gt;
* ru_minflt : Demandes de pages&lt;br /&gt;
* ru_majflt : Nombre de fautes de pages&lt;br /&gt;
* ru_nswap : Nombre de swaps&lt;br /&gt;
&lt;br /&gt;
Les valeurs sont exprimÃ©es en nombre de pages. Il faut lire la taille d'une page pour avoir la valeur en octets.&lt;br /&gt;
&lt;br /&gt;
=== free ===&lt;br /&gt;
&lt;br /&gt;
Commande '''free''' :&lt;br /&gt;
 $ free&lt;br /&gt;
              total       used       free     shared    buffers     cached&lt;br /&gt;
 Mem:        506488     356632     149856          0      18892     155056&lt;br /&gt;
 -/+ buffers/cache:     182684     323804&lt;br /&gt;
 Swap:      1485972     163940    1322032&lt;br /&gt;
&lt;br /&gt;
=== /proc/self/statm ===&lt;br /&gt;
&lt;br /&gt;
 $ cat /proc/self/statm&lt;br /&gt;
 689 144 121 4 0 61 0&lt;br /&gt;
&lt;br /&gt;
Signification des colonnes :&lt;br /&gt;
# Taille totale du programme (en pages)&lt;br /&gt;
# Taille rÃ©sidente du programme (en pages)&lt;br /&gt;
# Nombre de pages partagÃ©es&lt;br /&gt;
# Nombre de pages de code&lt;br /&gt;
# Nombre de pages de bibliothÃ¨ques&lt;br /&gt;
# Nombre de pages de donnÃ©e ou de pile&lt;br /&gt;
# Nombre de pages touchÃ©es (''dirty pages'')&lt;br /&gt;
&lt;br /&gt;
Source : (en) [http://www.redhat.com/docs/manuals/enterprise/RHEL-3-Manual/ref-guide/s1-proc-directories.html Red Hat Enterprise Linux 3: Reference Guide] (''Chapter 5. The proc File System'').&lt;br /&gt;
&lt;br /&gt;
=== /proc/meminfo ===&lt;br /&gt;
&lt;br /&gt;
Ã‰tat de la mÃ©moire physique. Lignes intÃ©ressantes :&lt;br /&gt;
 $ cat /proc/meminfo&lt;br /&gt;
 MemTotal:       506488 kB&lt;br /&gt;
 MemFree:         82396 kB&lt;br /&gt;
 Buffers:         36448 kB&lt;br /&gt;
 Cached:         173540 kB&lt;br /&gt;
 SwapTotal:     1485972 kB&lt;br /&gt;
 SwapFree:      1324976 kB&lt;br /&gt;
&lt;br /&gt;
=== /proc/self/status ===&lt;br /&gt;
&lt;br /&gt;
Le fichier /proc/self/status contient des lignes intÃ©ressantes :&lt;br /&gt;
 $ grep Vm /proc/self/status &lt;br /&gt;
 VmPeak:     2828 kB&lt;br /&gt;
 VmSize:     2828 kB&lt;br /&gt;
 VmLck:         0 kB&lt;br /&gt;
 VmHWM:       744 kB&lt;br /&gt;
 VmRSS:       744 kB&lt;br /&gt;
 VmData:      156 kB&lt;br /&gt;
 VmStk:        84 kB&lt;br /&gt;
 VmExe:        92 kB&lt;br /&gt;
 VmLib:      1304 kB&lt;br /&gt;
 VmPTE:        12 kB&lt;br /&gt;
&lt;br /&gt;
Les diffÃ©rentes lignes :&lt;br /&gt;
 * VmPeak : Valeur maximale de la mÃ©moire '''virtuelle''' depuis la naissance du processus&lt;br /&gt;
 * VmSize : Taille de la mÃ©moire virtuelle&lt;br /&gt;
 * VmLck : ???&lt;br /&gt;
 * VmHWM : ???&lt;br /&gt;
 * VmRSS : MÃ©moire Â« '''rÃ©sidente''' Â»&lt;br /&gt;
 * VmData : Taille de la mÃ©moire (des donnÃ©es) en lecture seule&lt;br /&gt;
 * VmStk : Taille de la pile&lt;br /&gt;
 * VmExe : Taille du code&lt;br /&gt;
 * VmLib : MÃ©moire des bibliothÃ¨ques partagÃ©es&lt;br /&gt;
 * VmPTE : ???&lt;br /&gt;
&lt;br /&gt;
== MÃ©moire et Xorg ==&lt;br /&gt;
&lt;br /&gt;
Il faut utiliser le programme '''xrestop''' pour lire la rÃ©partition en mÃ©moire des pixmaps par processus.&lt;br /&gt;
&lt;br /&gt;
Lisez aussi [http://icps.u-strasbg.fr/~marchesin/nvdri/fosdem1.pdf X.org myths] de StÃ©phane Marchesin.&lt;br /&gt;
&lt;br /&gt;
== Pile ==&lt;br /&gt;
&lt;br /&gt;
Sous Linux, la taille a une taille d'environ 8 Mo.&lt;br /&gt;
&lt;br /&gt;
On peut changer la taille de la pile initiale lors de la compilation, via la commande : Â« ld --stack=... Â».&lt;br /&gt;
&lt;br /&gt;
Pour dÃ©tecter le dÃ©passement de la pile (Â« notifiÃ©e Â» par un signal SIGSEGV envoyÃ© par le noyau), on peut utiliser le programme : [http://www.haypocalc.com/perso/prog/stack.c stack.c].&lt;br /&gt;
&lt;br /&gt;
On peut utiliser une pile dÃ©diÃ© aux gestionnaires de signal avec sigaltstack().&lt;br /&gt;
&lt;br /&gt;
On peut limiter la taille de la pile d'un thread avec pthread_attr_setstacksize().&lt;br /&gt;
&lt;br /&gt;
[[gcc]] a plusiers options relatives Ã  la gestion de la pile:&lt;br /&gt;
* Â« -fstack-check Â»&lt;br /&gt;
* Â« -mmax-stack-frame=n Â» : Avertissement si une fonction utilise plus de ''n'' octets de pile&lt;br /&gt;
* Â« -fstack-limit-register=reg Â»&lt;br /&gt;
* Â«-fstack-limit-symbol=sym Â»&lt;br /&gt;
* Â« -fno-stack-limit Â» : Pas de limlite de pile&lt;br /&gt;
* (dans le code) Â« __attribute__ ((sp_switch (&amp;quot;alt_stack&amp;quot;))) Â» indique qu'on utilise la pile de la variable alt_stack (void *alt_stack = malloc(...))&lt;br /&gt;
&lt;br /&gt;
La fonction alloca() alloue de la mÃ©moire sur la pile : en fait, c'est simplement un changement de valeur d'ESP (sur i386). gcc a la fonction __builtin_alloca(). La fonction alloca() a un comportement indÃ©fini lorsque la limite de la mÃ©moire est dÃ©passÃ©e, il ne faut donc pas l'utiliser. Voir :&lt;br /&gt;
* [http://sourceware.org/ml/libc-alpha/2004-02/msg00022.html alloca and reliable stack-overflow detection in glibc functions]&lt;br /&gt;
* [http://archive.cert.uni-stuttgart.de/vuln-dev/2003/02/msg00040.html Re: glibc glob_filename() recurse call stack overflow]&lt;br /&gt;
&lt;br /&gt;
== Python ==&lt;br /&gt;
&lt;br /&gt;
* [http://docs.python.org/lib/module-gc.html Module gc]&lt;br /&gt;
* re.purge() libÃ¨re les caches&lt;br /&gt;
* [http://www.artima.com/weblogs/viewpost.jsp?thread=174099 Memory debugging in Python -- fighting the GC] : Billet prÃ©sentant en dÃ©tail le fonctionnement de '''gc'''&lt;br /&gt;
* WikipÃ©dia : [http://fr.wikipedia.org/wiki/Ramasse-miettes Ramasse-miettes]&lt;br /&gt;
&lt;br /&gt;
Surveiller l'utilisation de la mÃ©moire : [http://guppy-pe.sourceforge.net/#Heapy Heapy] et (plus vieux et n'est plus maintenu) [http://pysizer.8325.org/ pysizer].&lt;br /&gt;
&lt;br /&gt;
=== pymalloc ===&lt;br /&gt;
&lt;br /&gt;
Le gestionnaire de mÃ©moire internet de Python 2.3 et 2.4, '''[http://www.python.org/doc/2.3/whatsnew/section-pymalloc.html pymalloc]''', est boguÃ©. Il ne libÃ¨re jamais la mÃ©moire : lisez [http://evanjones.ca/python-memory.html le billet d'Evan Jones] pour en savoir plus. Evan Jones a justement corrigÃ© ce bug et son travail a Ã©tÃ© intÃ©grÃ© dans Python 2.5 : lisez [http://evanjones.ca/python-memory-part3.html l'annonce d'Evan Jones] et [http://mail.python.org/pipermail/python-dev/2006-March/061991.html l'annonce de Tim Peters sur la liste de diffusion python-dev]. Tim Peters a repris le travail d'Evan Jones, l'a corrigÃ© et l'a commitÃ© dans le trunk de Python.&lt;br /&gt;
&lt;br /&gt;
== setrlimit ==&lt;br /&gt;
&lt;br /&gt;
Sous Linux, seul setrlimit(RLIMIT_AS) fonctionne. setrlimit(RLIMIT_RSS) et setrlimit(RLIMIT_DATA) ne fonctionnent pas. Lire un [http://lkml.org/lkml/2006/1/9/119 email d'Alan Cox Ã  ce sujet].&lt;/div&gt;</description>
			<pubDate>Tue, 24 Jul 2007 21:21:01 GMT</pubDate>			<dc:creator>Haypo</dc:creator>			<comments>http://haypo.alwaysdata.net:443/wiki/Discuter:M%C3%83%C2%A9moire</comments>		</item>
	</channel>
</rss>