(değil gerçek kodu):C# ve C++ 'da 2'ye bölünmek yerine, bir float/double'ı 0,5 ile çarpmak güvenli midir? Bu gibi şeyler için Temelde
for(int i = 0; i < 1000000000; ++i)
{
Vert v0 = mesh.polygons[i].edges[0].vert0;
Vert v1 = mesh.polygons[i].edges[0].vert1;
Vector3 center = (v0.pos + v1.pos)/2;
}
v0.pos
tip Vector3<float, float, float>
ait olmakla Vector3<double, double, double>
olabilir.
güvenli Bu erken optimizasyon gibi görünebilir ancak bu kadar hızlı noktaları (nokta bulutları) milyarlarca çağrıda olacağını mümkün olduğunca olmak zorunda sadece ?:
Vector3 center = (v0.pos + v1.pos) * 0.5;
yapmak mı.
Her iki seçeneğin performansını ölçtüğünüzde ne olur? Optimizasyon hakkında bu platformda, hedef platformunuzda * ölçüm yapmadan * bahsedemezsiniz. –
Her iki şekilde de ölçün. Ama derleyiciniz '2'ye bölünmek için zaten bit-kaydırmaya geri dönmelidir. – CaffGeek
Greg ile anlaştılar. Ayrıca, hızdan önce doğruluğa odaklanmanız gerektiğini unutmayın.Çoğu zaman, derleyici bunu sizin için en iyi şekilde kullanır (özellikle editörleri kullandığınızda). – TheBuzzSaw