Le triomphe inattendu de l'échantillonnage par rejet : une plongée profonde dans les tests de performance
Lors de l'optimisation de son traceur de rayons, PSRayTracing, l'auteur a approfondi les tests de performance pour les algorithmes générant des vecteurs aléatoires à l'intérieur d'un cercle/sphère unitaire. Initialement, il pensait qu'une solution analytique serait plus efficace que l'échantillonnage par rejet. Cependant, les benchmarks en Python et en C++, sur divers compilateurs et plateformes matérielles, ont donné des résultats surprenants : avec les optimisations du compilateur activées, l'échantillonnage par rejet a souvent surpassé l'approche analytique. L'auteur conclut que les tests de performance pratiques sont cruciaux lors de l'optimisation du code, évitant de dépendre d'hypothèses théoriques, car les stratégies d'optimisation du compilateur et les variations matérielles affectent considérablement les performances finales.