Настройка производительности в приложении Какао

Я разрабатываю приложение Какао, которое постоянно взаимодействует с веб-сервисом для получения актуальных данных. Это значительно снижает производительность приложения. Звонки в веб-службу выполняются асинхронно, но количество звонков огромно.

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

Спасибо

3 ответа

Решение

Да! На самом деле у Apple есть несколько очень кратких руководств по производительности, которые охватывают множество приемов и приемов, я уверен, что вы найдете что-то подходящее для вашего собственного приложения. Могут быть некоторые дополнительные руководства, специфичные для 10.5, которые я еще не видел, но вот три, которые я нашел полезными в прошлом.

Однако самое важное, что нужно убрать, это то, что вам нужно использовать инструменты для повышения производительности, чтобы точно определить, где возникает узкое место. Иногда это может быть в том месте, где вы меньше всего этого ожидаете.

Вы должны попробовать Shark, который поставляется с devtools для Mac OS X - действительно отлично подходит для копания в вашем стеке вызовов и должен позволять вам ограничиваться сетевыми библиотеками и друзьями.

Я думаю, что если вы используете Shark, вы просто обнаружите, что ваше приложение блокирует ожидание ответов от сервера. Сравнение кода между машинами намного сложнее для сравнения, поскольку стандартные инструменты могут тестировать только часть картины.

Похоже, вам нужно изучать объединение вызовов в меньшее количество транзакций... Ваше узкое место почти наверняка является сетью. Как насчет поддержки отправки нескольких вызовов в виде массива вызовов? и то же самое для ответов? Может быть, вы можете буферизовать вызовы локально и отправлять их только несколько раз в секунду в виде одной транзакции?

Тони

Другие вопросы по тегам