Ce code alloue 16 million d'elements de taille aleatoire entre 2 et 34 +1 elt de taille 16 million, ecrit un byte dans chaque allocation, et les desalloue.
Sur ma workstation qui a 512Mo de RAM (210 utilises avant le lancement), il fait monter l'usage jusqu'a 750Mo, donc il tappe dans le swap assez mechamment.
Il met 20s pour desallouer les 16 millions d'elements.
Bref, loin, tres loin de ce qu'il raconte et les temps sont a peu pres comparables sous Linux.
[^] # Re: On oublie toujours OCaml
Posté par pasBill pasGates . En réponse à la dépêche Havoc Pennington se pose des questions sur les langages du libre. Évalué à 1.
#include <stdio.h>
#include <stdlib.h>
#define COUNT 32
#define MAX (2<<23)/COUNT
int main(int argc, char *argv[])
{
srand(5);
char **Array=new char*[MAX*COUNT];
printf("Size: %d\n",MAX*COUNT);
for(int i=0;i<MAX*COUNT;i++)
{
Array[i]=new char[(rand()%COUNT)+2];
Array[i][1]='2';
}
printf("finished allocating\n");
for(int i=0;i<MAX*COUNT;i++)
delete[] Array[i];
delete[] Array;
return 0;
}
Ce code alloue 16 million d'elements de taille aleatoire entre 2 et 34 +1 elt de taille 16 million, ecrit un byte dans chaque allocation, et les desalloue.
Sur ma workstation qui a 512Mo de RAM (210 utilises avant le lancement), il fait monter l'usage jusqu'a 750Mo, donc il tappe dans le swap assez mechamment.
Il met 20s pour desallouer les 16 millions d'elements.
Bref, loin, tres loin de ce qu'il raconte et les temps sont a peu pres comparables sous Linux.