Есть ли какие-нибудь инструменты или хорошие методы, чтобы выяснить, где в приложении для iPhone есть проблемы с производительностью?

У меня есть приложение, которое наполовину готово. Производительность не очень хорошая, и мне интересно, где же узкие места. Хотя я могу пойти дальше и начать комментировать подозрительные строки кода, мне интересно, есть ли какие-нибудь инструменты, которые сказали бы мне, какой метод крутой, сколько времени и что произошло дальше. Трассировка стека на самом деле не так полезна.

У меня возникла странная идея преобразовать трассировку стека в график GraphViz, чтобы визуально увидеть всю картину. Я знаю, что некоторые ребята из IBM сделали нечто подобное, создав визуальный график трассировки стека, который был очень впечатляющим и значимым. Прежде чем изобретать велосипед: есть ли какой-нибудь хороший инструмент или методика, которые помогут найти узкие места в производительности iPhone OS?


person Thanks    schedule 23.05.2009    source источник
comment
Это в ответ на это: stackoverflow.com/questions/899880/?   -  person Kriem    schedule 23.05.2009


Ответы (2)


Как сказал Кеннет, Instruments превратились в бесценный инструмент для оптимизации производительности приложения Какао. . Его руководство пользователя можно найти здесь (или в вашем Xcode документация). Одна из замечательных особенностей инструментов отладки Xcode заключается в том, что их можно запускать для приложения, выполняющегося на устройстве, поэтому вы можете использовать инструменты для профилирования вашего приложения на реальном оборудовании.

При использовании Instruments я обнаружил, что инструмент CPU Sampler может дать очень хорошее представление о том, где мое приложение тратит больше всего времени. Например, у меня был то, что я считал медленным запросом SQLite, и я готовился оптимизировать все свои взаимодействия с SQLite, когда я запускал инструменты и обнаружил, что это на самом деле связано с некоторыми расточительными процедурами обработки строк.

Вы также можете использовать Shark для профилирования, хотя это не так просто.

Вас также могут заинтересовать ответы на эти вопросы:

person Brad Larson    schedule 23.05.2009

Используйте инструменты (приложение, поставляемое с инструментами разработчика), чтобы подключиться к процессу и измерить производительность.

Есть предустановка под названием «Базовая анимация», которая, вероятно, вам и нужна.

На портале разработчиков iPhone есть обучающее видео по инструментам: http://developer.apple.com/codingheadstarts/index.html.

person Kenneth Ballenegger    schedule 23.05.2009