Безопасное значение энергетического воздействия в iOS
Я создал приложение для iOS, и его первый этап почти завершен. Основной поток приложения заключается в том, что пользователь может добавить свое предложение. Другие пользователи могут воспользоваться этим предложением, заказав его. Количество предложений продолжает увеличиваться / обновляться, поэтому все данные в приложении загружаются с сервера. Теперь в навигаторе отладки все значения более или менее находятся в безопасной зоне (зеленой зоне), как показано:
Но энергетическое воздействие таково:
Это время, когда приложение запрашивает сервер для загрузки элементов в списке. Теперь мои вопросы:
- Что такое энергетическое воздействие? (искал, но не мог найти ничего, чтобы иметь правильное понимание)
- Каковы возможные причины его высокой стоимости?
- Каково это безопасное значение? Я должен попытаться сделать это низким?
- Если да, то какой возможный подход я могу попытаться сделать его низким?
Более того, даже если пользователь не взаимодействует с приложением, влияние энергии (не совсем ноль):
Принимая во внимание, что согласно Apple Docs:
Когда пользователь не взаимодействует с вашим приложением, не должно быть никакого энергетического воздействия.
Буду признателен за любую помощь, так как я новичок в iOS.
1 ответ
Проверьте, как часто вы пингуете процессор. Большая часть экономии энергии достигается за счет того, что процессор переходит в состояния лучшего энергосбережения (так называемые C-состояния). Если вы проверяете слишком часто, процессор не работает, и вы потребляете гораздо больше энергии.
Хорошее эмпирическое правило - делать как можно меньше проверок / проверок, не оказывая существенного влияния на производительность.
Давайте посмотрим на ваше среднее использование компонентов. "Накладные расходы" обычно означают чрезмерное переключение контекста. Одним из возможных решений является буферизация данных для уменьшения количества сетевых вызовов. Другая возможность - чрезмерное использование памяти, вызывающее много перестановок страниц. Обычно это происходит только в том случае, если вы исчерпываете реальное использование памяти / ОЗУ.
"Загрузка ЦП" выглядит высокой, особенно если учесть, что вы не занимаетесь много вычислений. Посмотрите на мой комментарий о минимизации любого пинга / проверки.