Когда я разработал подсказку о скорости, я получил этот код. Я запустил тестовый код, и результат улучшился всего в 1,5 раза. Я слышал, что он улучшился в 10 раз, но я не уверен в разработке игр, поэтому не могу его протестировать... Может ли кто-нибудь воссоздать тестовый код?
Код: Выделить всё
void run_benchmark() {
const int iterations = 10000000;
float r = 100.0f;
float k = 0.7071f;
float x = 50.0f, y = 50.0f;
EccentricCircle k_circle(r, k);
// 1. Standard Method (sqrt)
auto start1 = std::chrono::high_resolution_clock::now();
volatile float dummy1;
for (int i = 0; i < iterations; ++i) {
dummy1 = std::sqrt(x * x + y * y);
}
auto end1 = std::chrono::high_resolution_clock::now();
std::chrono::duration diff1 = end1 - start1;
// 2. K-Boundary Method (LUT)
auto start2 = std::chrono::high_resolution_clock::now();
volatile float dummy2;
for (int i = 0; i < iterations; ++i) {
dummy2 = k_circle.get_dist_fast(i);
}
auto end2 = std::chrono::high_resolution_clock::now();
std::chrono::duration diff2 = end2 - start2;
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79889890/i-made-a-simple-crash-algorithm-can-you-take-a-look-at-it[/url]
Мобильная версия