• # heuuuu

    Posté par . En réponse au journal Si si, le C++ peut parfois être plus rapide que le C. Évalué à 5. Dernière modification le 21 novembre 2013 à 23:09.

    int c_bigger (const void * a, const void * b)
    {
     if (*(int*)a > *(int*)b) return -1;
     else if (*(int*)a < *(int*)b) return 1;
     else return 0;
    }

    ???

    int c_bigger (const void * a, const void * b)
    {
     return *(int*)a - *(int*)b;
    }

    C'est trop mainstream ? L'auteur de l'article à raison (si l'on ne considère pas la compilation C à coup de LTO), mais du code crade n'a rien à foutre dans un bench. Parce que comme l'auteur de fait bien remarquer, le compilateur C ne sait pas que c'est une fonction qui doit juste retourner un nombre négatif si a est plus grand que b, un nombre nul s'ils sont égaux, et un nombre positifs sinon. Il compile bêtement ce code bête, pleins de sauts, et ça rame.

    On parle des devs C++ qui ne connaissent pas le C et qui balancent de la merde dessus ?

    ajout : Je suis quand même surpris d'une différence de perfs. Ça mériterait vraiment de vrais tests...

    Please do not feed the trolls