• [^] # Re: Bonne nouvelle

    Posté par . En réponse à la dépêche Que penser du rachat de Novell ?. Évalué à 2.

    Le problème n'est pas lié à la possibilité d'allouer 2 Gio. Bien sûr que c'est faisable. Le problème vient du fait qu'allouer 2 Gio peut prendre un sacré bout de temps à l'exécution. Je te laisse le soin de le faire proprement:


    #define TWO_GIGS 2UL * (1UL << 30)
    int *array = malloc(TWO_GIGS);
    for (size_t i = 0; i < TWO_GIGS; ++i)
    array[i] = i; /* to force memory to be allocated */

    foo(array);


    Définis ensuite foo() quelque part dans une autre unité de compilation, pour être sûr que gcc ne va pas simplifier le code (ou compile avec -O0). Bref. Sur mon super core i7 au boulot, effectivement je risque d'aller très vite. Sur mon Core 2 de l'ancien boulot, ça va prendre un moment. Je le sais d'expérience.