Linux utilise une stratégie d'allocation mémoire dite optimiste, sûrement pas les autres systèmes que tu as testés. Résultat : beaucoup plus de malloc avant que ça foire, et donc beaucoup plus de fork aussi...
D'ailleurs je me demande à quoi ça sert : il doit pas y avoir beaucoup de programmes qui allouent de la mémoire mais qui ne s'en servent pas. C'est une histoire d'optimisation peut-être...
On peut tester ça avec ce programme :
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
int megs = 0;
while (malloc (1 << 20)) megs++;
printf ("Mémoire allouée : %d Mo\n", megs);
return 0;
}
Chez moi, avec 256 Mo de RAM et 512 Mo de swap, ça me donne 2933 Mo, et 348 Mo avec l'overcommit_memory à 2 (pratique ce truc, je connaissais pas :).
[^] # Re: Ca donne quoi si tu fais...
Posté par durandal . En réponse au journal Comparatif entre systèmes d'exploitation. Évalué à 3.
D'ailleurs je me demande à quoi ça sert : il doit pas y avoir beaucoup de programmes qui allouent de la mémoire mais qui ne s'en servent pas. C'est une histoire d'optimisation peut-être...
On peut tester ça avec ce programme :
Chez moi, avec 256 Mo de RAM et 512 Mo de swap, ça me donne 2933 Mo, et 348 Mo avec l'overcommit_memory à 2 (pratique ce truc, je connaissais pas :).