Библиотеки предварительного связывания в Xcode 4 - PullRequest
0 голосов
/ 29 марта 2011

Я разрабатываю приложение для клиента, и у одного из его устройств (iTouch 2-го поколения на iOS4) возникают проблемы с запуском приложения.Я провел несколько тестов на распределение / утечку и пришел к выводу, что в коде моего приложения нет ничего плохого.Я заметил, что при запуске наблюдается скачок распределения, и я пришел к выводу, что это из-за dyld, который динамически связывает библиотеки при запуске.Как мне выполнить предварительную привязку приложения в xcode4?

Форум OS X казался крайне неинформативным в том смысле, что они предполагают, что вы сможете его найти.: /

Любая помощь будет оценена.Спасибо!

(мне также хотелось бы создать новый тег для «предварительной привязки»)

Ответы [ 2 ]

1 голос
/ 10 декабря 2011

Память, выделенная dyld, должна незначительно уменьшаться по сравнению с даже самыми основными выделениями, сделанными на самых ранних этапах времени выполнения.Среда выполнения Objective-C и другие системные инфраструктуры / библиотеки выделяют множество внутренних структур, которые необходимы для правильной работы.

Например, быстрый тест приложения, которое ничего не делает в основном, но делает один вызовNSLog(@"FooBar");, а затем режим сна (то есть никогда не запускающий UIApplication) выполнил 373 выделения, что в сумме составило 52 000 жизней.

Чтобы сделать шаг вперед, если вы действительно запустите UIKit, вот так ...

UIApplicationMain(argc, argv, nil, NSStringFromClass([MyAppDelegate class]));

... вы увидите ~ 600K в ~ 7800 выделенных ресурсах, как только приложение достигнет состояния покоя.Это все неизбежные вещи.Никакое предварительное связывание не спасет вас от этого.Я предлагаю не беспокоиться об этом.

Если вы видите, что выделяется на несколько порядков больше памяти, то, как сказал Ник Рейман, это ваше приложение.В конце концов, память, выделенная динамическим компоновщиком, совершенно незначительна.

1 голос
/ 08 декабря 2011

По словам Apple, вам не нужно предварительно связывать приложения для iOS . Если вы получаете большие всплески выделения, я предполагаю, что это связано с архитектурой вашего приложения, а не с самой ОС.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...