![]() |
Ответ: Поворот массива точек
Цитата:
Оно вроде быстрее. Цитата:
Прочитать готовое значение—1 такт. Синус и Косинус—241(193-279) тактов на процессоре i80486. Но я думаю немогло это так быстро уменьшится. Потом я читал что где-то даже увеличивалась. Во первых сложная операция, во вторых сопроцессор(FPU) работает медленней процессора. |
Ответ: Поворот массива точек
Блин ну проверь, что быстрее будет выборка по таблице или расчёт на месте. И сам удивишся но выборка из заранее просчитаного массива проигрывает и оч. сильно.
Ибо! Расчёт син и кос на совр процессоре с частотой пусть 2000Mhz занимает хоть и много тактов, но они проводятся со скоростью 2000Mhz, а выборка из памяти ДДР-2 при частоте 400 Mhz, уже проигрывает в скорости в 5 раз на такт, но чтобы прочитать из памяти нежен не один такт! а несколько! А именно суммируем все 4 основновные задержки у меня это 4-4-4-16 в сумме(28нс) так что нетрудно догадаться что чтение займёт больше. Вот если таблицу синусов загнать в кэш процессора то да, скорость будет намного больше вычисления. Кароче сделай тест, который считает пару десятков тысяч синусов, и берущий из таблицы алгоритм. На современном компе быстрее будет расчёт. На древнем 486м быстрее будет из таблицы. З.Ы. значения из таблицы так же сильно проигрывают в точности, т.к. расчёт таблицы ведётся с опр. шагом, и код функции выбирающий ближайшее значение так же внесёт вклад в задержки. |
Ответ: Поворот массива точек
drunnik
в последнее время в x86 процессорах архитектура поменялась, теперь в центре стоит risc ядро, а вокруг него обвязка x86 выполненая в большей части на микрокоде потому такт как рабочая единица сложно применима, да и данные для 80486 слишком сильно устарели а выборка из масива, да, зачастую медленее расчёта на процессоре |
Ответ: Поворот массива точек
Тоже сначала сильно удивилсо....когда увидел результаты тестов Оксида в модуле oxi.SinCos. Провел независимое тестирование....это подтвердилось. Теперь тока на проце и щитаю....стараясь - где нужно сразу юзать sincos().
Если Джокеру надо повернуть полигон, вершины которого загнаны в массив, - SetRotation ? Полигон можно хэндлить. а насчет 2-го то тут уже чистая математика. |
Часовой пояс GMT +4, время: 23:48. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot