В чем преимущество использования поддержки armv7s в действительной архитектуре?

Я работаю над приложением для iOS, которое поддерживает iOS 4.3 и выше. Из-за некоторых фреймворков я не могу заархивировать его для armv7, поэтому я удалил поддержку armv7. Снизит ли это производительность приложений? В чем преимущество использования armv7s?


person Harikrishnan    schedule 11.12.2012    source источник


Ответы (1)


Удивительно, но машинный код, созданный для двух разных архитектур, не сильно отличался; в целом код armv7s мало чем отличается от кода armv7. Тем не менее, было два конкретных отличия, которые привлекли мое внимание.

Первое отличие касается целочисленного деления. В архитектуре armv7s есть две новые инструкции целочисленного деления, которых нет в архитектуре armv7. Эти инструкции целочисленного деления реализованы как функция на armv7, которая как минимум на порядок медленнее, чем эквивалентная инструкция на armv7. Целочисленное деление распространено в приложениях (в Geekbench оно вызывается более чем в сотне мест), поэтому эти новые инструкции должны значительно повысить производительность всех приложений.

Второе отличие касается арифметики с плавающей запятой. Xcode использует другие арифметические инструкции с плавающей запятой для armv7, чем для armv7. Инструкции, которые Xcode использует для armv7, объединяют несколько операций в одну инструкцию, что должно сделать их более эффективными, чем несколько независимых инструкций, которые Xcode использует для armv7. Удивительно, но эти комбинированные инструкции с плавающей запятой присутствуют в архитектуре armv7, но не используются Xcode. Непонятно, почему это так. Для armv7 эти комбинированные инструкции представляют собой небольшую долю всех инструкций с плавающей запятой, поэтому, хотя они, вероятно, дадут преимущество, трудно определить, какое влияние они окажут.

Существуют и другие различия между кодом armv7 и armv7s, но они незначительны по сравнению с целочисленным делением и арифметическими изменениями с плавающей запятой, описанными выше. Насколько приложения выиграют от сборки armv7s? Трудно сказать, просто изучив сгенерированный код, но если вы разработчик, я думаю, что стоит потратить время и усилия на выпуск сборки armv7s вашего приложения, особенно если ваше приложение использует операции с плавающей запятой.

Я получил информацию по этой ссылке. Пожалуйста, перейдите по этой ссылке для более подробной информации. Спасибо

Разница между armv7 и armv7s

person Akshay Aher    schedule 11.12.2012