• [^] # Re: Est-ce le cache CPU ?

    Posté par (site web personnel) . En réponse au message étudier le fonctionnement du cache. Évalué à 3.

    >> const double by = (double)(j_shoot - j) * cellsize; // by = dy (m) going from (i_shoot,j_shoot) to (i,j)

    Tu peux le remonter hors de la boucle.

    >> const double dist2 = ( (bx * bx) + (by * by) + (bz * bz) );
    tu peux alors précalculer hors de la boucle aussi (by*by)

    >> const int ij = j * dimx + i;
    >> const int ab = j_shoot * dimx + i_shoot;

    Tu peux précalculer aussi j*dimx hors de la boucle même si tu l'utilises pas (à tester en fonction du nombre de fois ou le test est vrai).
    Aussi, ton ab est connu hors des 2 boucles.

    >> log/pow
    Bon, ça, ça coute cher. Faut voire tes données si t'as pas des invariants mathématiques.



    C'est de l'optimisation locale un peu naive, mais ça devrait le faire un minimum.