2016-02-28 6 views
1

Я сделал приложение Swift, которое отлично работает на iPhone 6 и 6 плюс, но когда я тестирую его на iPhone 5 и ниже, есть некоторые задержки.Как уменьшить использование ЦП?

После анализа я увидел высокий расход процессора/памяти.

Я хочу знать, есть ли советы или рекомендации по уменьшению этого использования?

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

Код, который потребляет наибольшее количество ресурсов, создает контейнер (например, центр уведомлений) с некоторыми кнопками на нем и применяет эффект размытия под ними.

ответ

1

Я нашел это document от Apple, чтобы иметь хорошие советы и рекомендации по улучшению производительности.

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

+0

Я взгляну на этот документ. Спасибо, Хьюго. – f1rstsurf

+0

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

+0

Я использовал инструменты для более глубокого изучения, которые перегружают мой процессор, и я обнаружил, что: http://imgur.com/pRIR5zU, кроме того, разгон происходит только тогда, когда мой контейнер опущен. – f1rstsurf

1

Когда вы говорите

После анализа, я увидел высокое потребление CPU/памяти

было то, что с помощью времени профилировщика инструмент?

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

Time Profiling with Instruments

+0

Да, это было использование профайлера времени, но я должен признаться, что не знаком с ним.Я посмотрю вашу ссылку, чтобы понять, что делать, чтобы узнать, что потребляет мои ресурсы. Спасибо – f1rstsurf

+1

Потратьте немного времени. Инструменты, это весело. Просмотрите видео WWDC на нем, у них есть один или два разговора об этом каждый год, а не в деталях, но достаточно, чтобы использовать его и определить, что занимает время в ЦП. Есть несколько вариантов справа от представления «Инструменты», например. скрыть системные библиотеки, которые помогают показывать только релевантную информацию. – jarryd

+0

Я начал искать видео с YouTube, которые дают сом объяснения, это потрясающе. – f1rstsurf

0

Ok я нашел, где проблема. Я использую библиотеку «FXBlur» для создания эффекта размытия.

Эта библиотека имеет функцию, которая обновляет содержимое контейнера каждую секунду.

Я только что изменил код, чтобы удалить эту функцию, и теперь использование моего процессора колеблется между 0 и 3% вместо 37%, что было раньше.

Спасибо всем за помощь.

Смежные вопросы