2017-01-10 12 views
0

Я прочитал документацию Apple по энергопотреблению процессора, но у меня все еще есть некоторые затяжные вопросы.Какова специфика связи между использованием ЦП и потреблением энергии в iOS?

Использует ли 1% использование ЦП одинаковое количество накладных расходов, чтобы поддерживать работу ЦП на 100%?

Независимо от того, работает ли каждый основной источник питания вверх и вниз?

Сколько времени требуется, прежде чем процессор отключится после его простоя?

Будет ли система обычно использовать процессор для своих собственных задач, тем самым поддерживая ЦП?

Для моего приложения, в частности, мне трудно получить процессор до 0% за любое приличное количество времени. В типичном сеансе, по крайней мере, будет постоянный поток вызовов делегатов UIScrollView и UITableViewCell, которые будут перерабатывать вызовы, когда пользователь перемещается вокруг приложения, а тем более взаимодействует с контентом. Однако, основываясь на этом сообщении, https://apple.stackexchange.com/questions/2876/why-does-gps-on-the-iphone-use-so-much-power, центральный процессор звучит как главный энергетический преступник. Я надеюсь, что даже небольшая пауза, пока они будут использовать приложение, позволит процессору сэкономить немного энергии, поэтому я могу просто работать над избавлением от долговременных задач.

ответ

2

Возможно, это слишком широкий вопрос, на который нужно ответить в этом формате. Все это «зависит» и может быть изменено по мере изменения ОС и оборудования. Однако вы должны начать с просмотра различных energy-related videos from WWDC (их очень много).

В принципе разница между 0% использования ЦП и 1% использования ЦП огромна. Однако разница между 1% и 100% также огромна. Система полностью включает и выключает различные части ЦП (включая целую ядро) в зависимости от того, насколько она занята, и если она может опускаться до нуля в течение нескольких десятков миллисекунд периодически, это может значительно увеличить срок службы батареи (поэтому в последних версиях iOS вы можете указать допуски по таймеру, чтобы он мог работать вместе, а затем возвращаться в режим с низким энергопотреблением).

Все, что сказано, вы не должны рассчитывать на нулевой процессор, пока пользователь фактически взаимодействует с вашим приложением. Очевидно, что пользователь реагирует на работу. Вы должны исследовать свое потребление энергии с помощью инструментов, чтобы искать места, которые являются чрезмерными, но я ожидал бы, что процессор будет «делать что-то», пока пользователь прокручивает (как это может быть?). Вы не должны пытаться искусственно вводить паузы или все, чтобы позволить процессору спать. Как правило, лучше всего использовать процессор, если он поможет вам сделать быстрее, а затем ничего не делать. Под этим я имею в виду, что гораздо лучше разобрать всю массивную загрузку (как пример) так быстро, как вы можете, и использовать 100% -ный процессор, чем распространять его и использовать 20% -ный процессор на 5 раз.

ЦП должен использоваться. Вы просто не хотите тратить его.