Как программно определить интенсивность использования процессора или насколько занята / занята система в iPhone-OS? - PullRequest
1 голос
/ 23 мая 2009

Во время прокрутки мое приложение выполняет анимацию с довольно тяжелым весом. Иногда происходит сбой из-за плохой работы. Поэтому мне нужен какой-то способ выяснить, достаточно ли возможностей для создания анимации, а если нет, я просто оставлю их в покое. Лучше всего было бы спросить систему, насколько она занята.

ОБНОВЛЕНИЕ: я имею в виду, особенно Core Animation.

Ответы [ 2 ]

3 голосов
/ 23 мая 2009

Под анимацией вы подразумеваете кадры, которые воспроизводятся один за другим (например, анимированный GIF), или какой-то эффект CoreAnimation (OpenGL), который перемещает полигоны с отображенными текстурами вокруг?

Если это первое, я бы действительно подумал о том, как оптимизировать анимацию или устранить ее во всех случаях.

Если бы это было последним, я бы глубже вникнул в источник проблемы. Базовая анимация при нормальных обстоятельствах будет сбрасывать кадры, чтобы не попасть в подобные ситуации.

В любом случае вы можете рассмотреть возможность загрузки ресурсов текстуры немного раньше. У меня были некоторые проблемы в моих приложениях с методами анимации, которые принимают параметр UIImage, когда я создавал UIImage в вызове функции. Предварительная загрузка актива в моем коде немного раньше позаботилась о проблеме.

Как пример:
BAD

[[UIImage imageNamed:@"checkmark.png"] drawAtPoint:p];

ЛУЧШЕ

//declared at top of class
static UIImage *checkmark = nil;

в init:

checkmark = [UIImage imageNamed:@"checkmark.png"];

в DrawRect:

[checkmark drawAtPoint:p];

Вам нужно будет адаптировать эту технику к вашей конкретной ситуации. В моем случае, часто используется галочка, и она довольно маленькая, я не возражаю посвятить ей память постоянно.

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

2 голосов
/ 23 мая 2009

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

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

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