O triunfo inesperado da amostragem por rejeição: um mergulho profundo nos testes de desempenho

2025-01-31

Ao otimizar seu ray tracer, PSRayTracing, o autor se aprofundou nos testes de desempenho para algoritmos que geram vetores aleatórios dentro de um círculo/esfera unitária. Inicialmente, ele acreditava que uma solução analítica seria mais eficiente do que a amostragem por rejeição. No entanto, benchmarks em Python e C++, em vários compiladores e plataformas de hardware, produziram resultados surpreendentes: com otimizações de compilador ativadas, a amostragem por rejeição frequentemente superou a abordagem analítica. O autor conclui que testes de desempenho práticos são cruciais ao otimizar o código, evitando a dependência de suposições teóricas, pois as estratégias de otimização do compilador e as variações de hardware afetam significativamente o desempenho final.