Le 7/9/2007, "Edgar Bonet" <guilde@???> a écrit:
>Voici un remplisseur de mémoire plus rapide et quantitatif :
>
>------------------------------------------------------------------------
>#include <stdlib.h>
>#include <unistd.h>
>
>#define LOG_PROCS 4 /* 16 processes */
>#define SZ (128<<20) /* 128 MB per process */
>
>int main(void)
>{
> unsigned int i, *p;
>
> for (i=0; i<LOG_PROCS; i++) fork();
> p = malloc(SZ);
> for (i=0; i<SZ/sizeof *p; i++) p[i] = i;
> pause(); /* wait to be kill()ed */
> return 0;
>}
>------------------------------------------------------------------------
>
>Tu règles les #define pour la taille que tu veux. Ici c'est réglé à
>16 × 128 Mo = 2 Go. L'intérêt du fork() est que tu peux remplir plus
>de mémoire que l'espace d'adressage d'un processus (limité si tu es
>en 32 bits).
>
>Chez moi ça donne :
> - RAM : 1 Go, pleine
> - swap : 2 Go, dont 1,3 Go remplis
>
>Tu arrêtes avec killall.
Super pratique ! Merci Edgar :o)