О 64-разрядных сенсорных приложениях какао
Когда настольные операционные системы перешли от 32-разрядного до 64-разрядного обращения, 64-разрядные приложения были критически важны по отношению к переходу OS. Теперь, iOS получает подобную архитектуру настольного класса. Начиная с iOS 7 и процессора A7, можно создать приложения для iOS, использующие в своих интересах 64-разрядные процессоры. Приложение, поддерживающее 64-разрядную обработку почти всегда, получает улучшенную производительность при сравнении с 32-разрядным приложением, работающим на том же устройстве.
Сразу
Процессор Apple A7 поддерживает две отличных системы команд. Первой является 32-разрядная система команд ARM, поддерживаемая предыдущими процессорами Apple. Второй является совершенно новая 64-разрядная архитектура ARM. 64-разрядная архитектура включает поддержку значительно большего адресного пространства, но это не единственное (или самый важный) архитектурное улучшение, которое это обеспечивает. 64-разрядная архитектура поддерживает новую и оптимизированную систему команд, поддерживающую вдвое больше целого числа и регистров с плавающей точкой. Компилятор Apple LLVM был оптимизирован, чтобы в полной мере воспользоваться этой новой архитектурой. В результате 64-разрядные приложения могут работать с большим количеством данных сразу для улучшенной производительности. Приложения, экстенсивно использующие 64-разрядную целочисленную математику или пользовательские операции NEON, видят еще большее увеличение производительности. Так, даже при том, что 32-разрядные приложения уже работают быстрее на процессоре A7, чем они сделали на более ранних процессорах, преобразовывание приложений к 64-разрядному почти всегда обеспечивает лучшую производительность.
Когда 64-разрядное приложение работает в iOS, указатели составляют 64 бита. Некоторые целые типы, один раз 32 бита, - также теперь 64 бита. Много типов данных в системных платформах, особенно UIKit и Основа, также изменились. Эти изменения означают, что 64-разрядное приложение использует больше памяти, чем 32-разрядное приложение. Если не управляемый тщательно, увеличенное потребление памяти может быть вредно для производительности приложения.
Когда iOS выполняется на 64-разрядном устройстве, iOS включает отдельные 32-разрядные и 64-разрядные версии системных платформ. Когда все приложения, работающие на устройстве, компилируются в течение 64-разрядного времени выполнения, iOS никогда не загружает 32-разрядные версии тех библиотек. В результате система использует меньше памяти и запускает приложения более быстро. Поскольку все встроенные приложения уже поддерживают 64-разрядное время выполнения, именно к общему преимуществу все приложения, работающие на 64-разрядных устройствах быть скомпилированными в течение 64-разрядного времени выполнения, особенно приложения та фоновая обработка поддержки. Даже приложения, которые не являются производительностью чувствительное усиление от этой эффективности памяти.
Вот то, как Вы преобразовываете приложение в 64-разрядный.
Преобразуйте свое приложение в 64-разрядный двоичный файл
Поведение по умолчанию для XCode состоит в том, чтобы создать Ваше приложение и с 32-разрядными и с 64-разрядными включенными двоичными файлами. Этот объединенный двоичный файл требует минимальной цели развертывания iOS 5.1.1 или позже. 64-разрядный двоичный файл выполняет только на 64-разрядных устройствах рабочий iOS 7.0.3 и позже. Если у Вас есть существующее приложение, необходимо сначала обновить приложение к iOS 7 или позже и затем портировать его для работы 64-разрядных процессоров. Путем обновления его сначала, можно удалить устаревшие (deprecated) пути выполнения кода и использовать современные практики. Если Вы создаете новое приложение, предназначаетесь для iOS 7 или позже и компилируете 32-разрядные и 64-разрядные версии Вашего приложения.
Архитектура для 64-разрядных приложений на iOS почти идентична архитектуре для приложений OS X, упрощая создавать общую кодовую базу, работающую в обеих операционных системах. Преобразование Сенсорного приложения Какао к 64-разрядному следует за подобным процессом перехода как за тем для приложений Какао на OS X. Указатели и некоторые общие типы C изменяются с 32 битов до 64 битов. Код, полагающийся NSInteger
и CGFloat
типы должны быть тщательно исследованы.
Запустите путем создания приложения в течение 64-разрядного времени выполнения, фиксации любых предупреждений, происходящих, а также поиск кода для определенных 64-разрядных проблем. Например:
Удостоверьтесь, что все вызовы функции имеют надлежащий прототип.
Избегите усекать 64-разрядные значения путем случайного присвоения их 32-разрядному типу данных.
Гарантируйте, что вычисления выполняются правильно в 64-разрядной версии Вашего приложения.
Создайте структуры данных, разметки которых идентичны в 32-разрядных и 64-разрядных версиях Вашего приложения (такой как тогда, когда Вы пишете файл данных в iCloud).
Протестируйте свое приложение на 64-разрядном устройстве
Средство моделирования iOS может использоваться для моделирования или 32-разрядных или 64-разрядных устройств. После преобразования Вашего приложения к 64-разрядному времени выполнения можно использовать Средство моделирования для тестирования приложения. В частности Средство моделирования является большим для тестирования кода, использующего пользовательские структуры данных, чтобы гарантировать, что Ваши данные могут быть считаны и записаны в обеих архитектуре. Однако перед распределением приложения необходимо протестировать его на фактических аппаратных средствах. Некоторые изменения во время выполнения могут быть обнаружены только, когда приложение работает на устройстве.
После того, как Ваше приложение было успешно преобразовано, используйте Инструменты для профилирования его производительности и использования памяти.
Как использовать этот документ
Считайте Главные 64-разрядные Изменения, чтобы понять изменения в 64-разрядное время выполнения, и затем считать Преобразование Вашего Приложения в 64-разрядный Двоичный файл для конкретных подробных данных о том, как обновить Ваше приложение. Чтобы гарантировать, что объем потребляемой памяти Вашего приложения остается умеренным, считайте Производительность Памяти Оптимизации.
Предпосылки
У Вас должно быть некоторое знакомство с созданием приложений для понимания информации в этом руководстве. Для получения дополнительной информации посмотрите, Начинают Разрабатывать приложения для iOS Сегодня.
В некоторых случаях подробное понимание ANSI C программирование необходимо, чтобы максимально использовать информацию в этом руководстве.
См. также
Подробные данные и 32-разрядного и 64-разрядных двоичных интерфейсов приложений могут быть сочтены в iOS Руководством по Вызову функции ABI.