• [^] # Re: Pas sûr que trouver des erreurs/la fiabilité soit si important pour la communauté libre..

    Posté par . En réponse à la dépêche [code] Trouver les erreurs. Évalué à 7.

    Je viens de jouer avec gcc en -O3 et ait regardé rapidement les sorties assembleur générées par les différentes versions

    mettre un if dans la boucle, et donc impact sur les performances (si c'est la boucle principale du programme, c'est dommage...),

    Le compilo n'est pas con la sémantique des deux versions est strictement identique et l'assembleur généré avec le goto ou le if est EXACTEMENT le même.

    dupliquer la partie de code avant le label, et briser le justifié Do Not Repeat Yourself, et augmente la taille du runtime,

    DRY s'applique surtout aux concepts. Il n'y a pas grand chose de sale dans ce cas.

    Le code généré est pas identique entre les deux versions et sans microbencher très sérieusement je serais infoutu de prédire laquelle est la plus rapide. A vu de nez je me risquerait à dire que c'est identique (la seul différence est un jmp supplémentaire dans la version avec le goto). Il y a UN octet de différence de taille entre les binaires.

    C'est une vraie question: pour ce pattern la, comment faire sans goto? À efficacité maximale, j'entend.

    Tu écris le plus lisible. Le jour ou ça sortira comme un hotspot tu y réfléchiras autrement. Je prends le pari qu'on en reparle pas de si tôt vu que tu ne demandes pas un effort inhumain au compilateur pour comprendre la sémantique de ce que tu demandes...

    on peut dire la même chose des singleton

    Non le singleton n'a pas de bon usage.

    mais ce n'est pas la faute à la technique, juste à son utilisateur

    Oui surtout ceux qui veulent être très malin !