Быстрый синус/косинус для ARMv7+NEON: поиск тестеров …

Будьте зациклены:

  • поля Final - отмечающие поля, поскольку финал вынуждает их быть установленными к концу конструкции, делая ту неизменную ссылку поля. Это позволяет безопасную публикацию полей и может избежать потребности в синхронизации на более поздних чтениях. (Обратите внимание, что для ссылки на объект, только ссылка поля неизменна - вещи, к которым относится ссылка на объект, может все еще измениться, и это влияет на неизменность.)
  • Заключительные статические поля - Хотя я использую перечисления теперь для многих случаев, где я раньше использовал статические заключительные поля.

Рассматривают, но используют рассудительно:

  • Заключительные классы - дизайн Платформы/API является единственным случаем, где я рассматриваю его.
  • Последние методы - В основном то же как заключительные классы. Если Вы используете шаблонные шаблоны метода как сумасшедший и отмечаете финал материала, Вы, вероятно, полагаетесь слишком много на наследование и недостаточно на делегацию.

Игнорируют если анальное ощущение себя:

  • параметры Метода и локальные переменные - я РЕДКО делаю это в основном, потому что я ленив, и я нахожу, что это создает помехи коду. Я полностью признаю, что маркировка параметров и локальных переменных, которые я не собираюсь изменять, является "более правильной". Мне жаль, что это не было значение по умолчанию. Но это не, и я нахожу код более трудным понять с финалом на всем протяжении. Если я нахожусь в чужом коде, я не собираюсь вытаскивать их, но если я запишу новый код, то я не вставлю их. Одно исключение имеет место, где необходимо отметить что-то заключительное, таким образом, можно получить доступ к нему из анонимного внутреннего класса.
15
задан jcayzac 6 December 2009 в 03:30
поделиться

2 ответа

Только что протестировал его на моем биглборде .. Как сказано в комментариях: Тот же процессор.

Ваш код примерно в 15 раз быстрее, чем clib .. Молодец!

Я измерил 82 цикла для каждого вызова вашей реализации и 1260 циклов для четырех вызовов c-lib. Обратите внимание, что я скомпилировал ABI с мягким плаванием, а мой OMAP3 - это ранний кремний, поэтому каждый вызов версии c-lib приводит к задержке NEON не менее 40 циклов.

Я объединил результаты ..

http://torus.untergrund.net/code/sincos.zip

Счетчик производительности, скорее всего, не будет работать на iphone.

Надеюсь, это то, что вы искали.

10
ответ дан 1 December 2019 в 04:40
поделиться

Ох, пока я не забыл: может быть, вы сможете обезопасить себя немного поработать ..

Взгляните на эти оптимизированные для NEON математические функции:

http://code.google.com/p/math -neon /

3
ответ дан 1 December 2019 в 04:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: