Делает ли однопользовательское приложение многоядерным в android?

Использует ли однопоточное приложение все 4 ядра в четырехъядерном телефоне. Я много искал и нашел несколько статей, в которых говорится "да", а некоторые говорят "нет". в некоторых статьях даже говорят, что ОС Android не использует 4 ядра.

Может ли андроид использовать все 4 ядра в четырехъядерном процессоре?

Использует ли однопоточное приложение многоядерное?

Ответ 1

Ответ ДА.

Android в основном построен на ядре Linux, в котором используется, используется mulit-core. Что касается однопоточного приложения, помните, что поток не может выполняться внутри частей на разных ядрах одновременно. Поэтому, хотя ваш однопоточный поток может выполняться разными ядрами в разные моменты времени, он не может быть разделен и выполнен разными ядрами одновременно.

Сказав это, имейте в виду, что производители чипсета, такие как Qualcomm, разрабатывают интеллектуальные процессоры, способные подразделять ваш однопоточный код приложения (если и только если есть взаимоисключающие части) на несколько потоков и запускать его на разных сердечники. Здесь опять же основной принцип остается таким же - для использования многоядерного, один поток был разделен на несколько потоков.

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

EDIT:

Это также означает, что приложение, которое не использует несколько асинхронных потоков (или любую другую конструкцию parallelism), НЕ будет использовать более одного ядра.

Ответ 2

На четырехъядерном процессоре на базе центрального процессора операционная система может динамически распределять рабочих нагрузок к соответствующему ядру ЦП на основе текущих нагрузок ЦП и приоритета задачи/активности. Например, если два ядра процессора заняты обработкой длинных задач, таких как приложение Android обновления, сжатие файлов и средства массовой информации, операционная система может сразу выделить задержку чувствительные задачи, такие как сенсорные входы к доступному третьему или четвертому ядру, чтобы быстрее выполнять ответная реакция. Когда одновременно выполняется несколько задач, запрос в очереди из этих задач можно обслуживать быстрее, когда для обслуживания этих запросов доступно несколько ядер.

Операционная система Android развилась из Linux, и поэтому имеет встроенную поддержку для многозадачность и многопоточность. В последних версиях Android 2.3 и Android 3.0/3.1/3.2 добавлено несколько функций, которые улучшают способность операционных систем использовать вычислительную мощность многоядерных процессоров. Мобильные браузеры, такие как Firefox и Webkit, основаны на своих настольных копиях и, следовательно, включают поддержку многопоточности. Новый браузер, включенный в Android 3.0, поддерживает не только многопоточность, но и просмотр с вкладками. Эти браузеры могут использовать увеличенную вычислительную мощность, предлагаемую многоядерными процессорами, для более быстрого и удобного просмотра веб-страниц.

Следующие изображения будут описывать больше:

На этом рисунке показано использование каждого ядра четырехъядерной процессорной системы при просмотре популярного веб-сайта New York Times. Из рисунка видно, что браузер использует все четыре ядра четырехъядерного процессора, и эта параллельная обработка приводит к опыту работы в Интернете, который намного быстрее, чем 6 на двухъядерном мобильном устройстве на базе процессора. Четырехъядерный процессор также обеспечивает более высокую производительность для браузеров, поддерживающих просмотр с вкладками.

CPU Utilization

Ниже показано использование ЦП на четырех ядрах ЦП, когда в веб-браузере открываются несколько вкладок. Фактически, просмотр с вкладками использует значительную обработку ЦП и, как видно на рисунке, может даже насытить все четыре ядра четырехъядерного процессора.

Tabbed Browsing

Причина, по которой ОС Android должна использовать все ядра: (Поскольку я разработчик Android. Так что причина связана с точкой зрения Android Developer)

Из-за быстрого роста в мобильных играх разработчики портируют популярную компьютерную и консольную игру двигатели к мобильной среде. Эти игровые движки были первоначально разработаны для многоядерных настольных ПК-платформ и, следовательно, будут использовать многоядерные процессоры на мобильных устройствах процессоры для немедленной доставки мобильных геймеров. Четырехъядерные процессоры обеспечивают значительная вычислительная мощность для разработчиков игр и позволит разработчикам включать передовые физические эффекты, искусственный интеллект, обнаружение/предотвращение столкновений, виртуальное текстурирование, лучшую сетевую игру и многое другое. Четырехъядерные процессоры и технология с переменным SMP позволят мобильным устройствам еще больше подталкивать конверт производительности и позволяют разработчикам приложений и игр предоставлять новые возможности для мобильных устройств, при этом увеличивая время автономной работы для наиболее популярных вариантов использования.

По мере того, как мобильные игры увеличивают сложность и визуальное богатство, также значительно увеличиваются соответствующие размеры загружаемого игрового контента. Часто размер файла игры настолько велик, что время, затрачиваемое на загрузку игры, превышает 15-минутное время возврата, которое предоставляется после покупки для пользователей, требующих возврата, если им не нравится игра. Это не только создает разочарование покупателя, но и демотизирует покупателей от приобретения продвинутых игр, требующих большой загрузки файлов.

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

Game Scene Variation

Ответ 3

Да. Android 3.0 - это первая версия платформы, предназначенная для работы на архитектуре одноядерных или многоядерных процессоров.

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

Например, , если ваше приложение использует медиа-сервер, тогда обработка мультимедиа и логика приложения для представления пользовательского интерфейса могут работать на разных ядрах одновременно. Кроме того, сборщик мусора может работать на другом ядре.

Подробнее см. ссылку ниже.

https://developer.qualcomm.com/blog/multi-threading-android-apps-multi-core-processors-part-1-2.

https://developer.qualcomm.com/blog/multi-threading-android-apps-multi-core-processors-part-2-2.

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

https://youtu.be/vQZFaec9NpA?t=459 (Графика и производительность)

http://android-developers.blogspot.in/2010/07/multithreading-for-performance.html

Проверьте этот pdf. Прокрутите вниз до слайда 22. Может быть полезно

http://elinux.org/images/1/11/Application-Parallelization-Android-KlaasVanGend.pdf