Почему телефоны Android имеют больше ядер, чем компьютеры?

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

С другой стороны, на мобильных телефонах четырехъядерные процессоры, гексакоры и октакоры кажутся быть общим. Зачем? Какие задачи могут их использовать?

Я понимаю, что big.LITTLE Может быть частью ответа. То есть главное преимущество такого количества ядер заключается не в возможности использовать их все одновременно, а в том, чтобы использовать ядро ​​с энергопотреблением, соответствующим текущей рабочей нагрузке. Однако, например, Snapdragon 625 имеет восемь ядер Cortex-A53, что, похоже, не подходит для big.LITTLE.

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

Но даже в этом случае я не вижу, какая рабочая нагрузка может эффективно использовать, скажем, восемь ядер на мобильном телефоне. На ноутбуках я могу представить несколько таких, как полная (неинкрементная) компиляция проекта. Но на телефонах?

  • Игры могут сильно зависеть от производительности, но обычно они требуют производительности графического процессора, а не процессора, не так ли?
  • Теоретически, многоядерные процессоры могут ускоряться Компиляция Android Lollipop /Marshmallow AOT при установке или обновлении (т. Е. Фаза «Оптимизация приложений 3/121»). Я, однако, не уверен, что это может использовать несколько ядер. Насколько я помню код, за один раз компилируется только одно приложение, но, возможно, в самом процессе компиляции есть некоторый параллелизм.
  • Также Android 7+ может использовать несколько ядер при компиляции. Но так как он, как сообщается, компилируется, когда простаивает и заряжается, выгода, кажется, довольно минимальна. По крайней мере, когда кто-то заряжает телефон в одночасье - мне действительно все равно, если в таком сценарии это займет 30 минут или два часа.

Ответы и комментарии:

Как я указал в своем ответе, имейте в виду, что вы, кажется, смотрите на вещи с ног на голову. Многоядерное / параллельное выполнение является нормой, это не ваш телефон, который является аномалией для многих ядер, это ЦП ПК, который является аномалией.
Создан 12-06-2017 08:09 motoDrizzt

Ваш вопрос некорректен, у ПК может быть больше ядер, чем у телефонов. intel.com/content/www/us/en/products/processors/core/x-series/… И это даже не относится к машинам серверного класса, которые могут иметь десятки или даже сотни ядер. (И некоторые суперкомпьютеры входят в диапазон тысяч ядер.)
Создан 12-06-2017 02:47 JAB

@JAB Конечно, но я говорю не о максимальном количестве ядер, а о типичном количестве. Для ноутбуков больше, чем четырехъядерные, довольно редки, но вы можете найти какое-то исключение, возможно, с Xeon. Для мобильных телефонов даже октакоры кажутся довольно распространенными.
Создан 12-06-2017 02:32 v6ak

«Я недавно переключился с четырехъядерного на двухъядерный, и могу подтвердить, что существует ограниченное количество сценариев использования для четырехъядерных процессоров, даже с задачами, интенсивно использующими процессор». - Можете ли вы расширить и уточнить, как вы пришли к такому выводу?
Создан 12-06-2017 06:28 Abdul

@Abdul Это происходит в основном из моих наблюдений (наблюдение за загрузкой системы с помощью htop или аналогичного инструмента) и частично из моих выводов. Даже некоторые такски, где я ожидал бы распараллеливания (например, рендеринг с использованием OpenScad), являются одноядерными. Firefox (ESR) обычно использует не более одного ядра. Инкрементная компиляция - я не измерял ее, но интуитивно, у меня мало возможностей для поиска независимых задач. (Полная компиляция - это другой случай.)
Создан 12-06-2017 07:52 v6ak

Я помню, как читал или смотрел где-то, что ядро ​​Linux изначально работало на хорошей многоядерной поддержке с упором на суперкомпьютеры много лет назад, и эти усилия оказались полезными «в будущем» (сейчас) для смартфонов, вроде как « авария"
Создан 12-06-2017 07:23 Marc.2377

Этот ответ, по-видимому, на самом деле не отвечает на вопрос, несмотря на то, что его приняли. Этот ответ, кажется, отвечает "Почему я могу хотеть дополнительные ядра в моем телефоне?" это не вопрос под рукой. Это не объясняет разницу между ПК и телефоном. Данные о том, почему телефон может потребовать больше ядер, применимы и к настольным компьютерам, особенно к играм.
Создан 12-06-2017 09:20 Aaron

Заявление 1976 года о процессорах x86 несколько вводит в заблуждение. Ядра ARM можно отнести к проекту Acorn RISC Machine в 1983 году, всего лишь 7 лет спустя, и, в некотором смысле, новшество является преимуществом, Acorn узнал несколько вещей, которые были неверны при разработке x86 и аналогичных конструкций ЦП, и включил их в РУКА.
Создан 12-06-2017 10:00 user1937198

Основное различие между ними сейчас заключается в том, что Intel инвестировала огромные суммы в создание процессоров, которые работают максимально быстро, исключая все остальное, в то время как ARM сфокусирован на процессорах, которые гораздо более эффективны, как с точки зрения энергопотребления на цикл, и стоимость.
Создан 12-06-2017 10:21 user1937198

Дело в х86 довольно ... неправильно. Это суперскалярные чипы, базовые реализации не будут столь же хороши, как классический конвейер RISC, используемый в большинстве чипов ARM. Стоит также отметить, что связать ядра вместе с суперскалярными проектами ОЧЕНЬ сложно из-за неправильного выполнения и иерархии кэша. Никто не знал, что им не хватало, поэтому на самом деле не было спроса на это. Если вы заметили, что некоторые из более новых итераций Intel не в чипах с большим количеством ядер - они на Broadwell, это потому, что они отказались от синхронизирующих элементов - нехватка места.
Создан 13-06-2017 09:11 Alec Teal

Вы уверены, что отвечаете на правильный вопрос?
Создан 11-06-2017 11:24 iBug

@iBug Этот ответ относится к вопросу ОП лучше, чем принятый ответ. Принятый ответ - тот, который не отвечает на правильный вопрос.
Создан 12-06-2017 06:50 Aaron

"завышают цены искусственно ЦП" -> если корпорации Intel было искусственного завышения цен, почему их конкуренты используют такой же цене скобяными и почему рука машинах такой отстой по сравнению с аппаратными средствами Intel? Это Intel-ненавидеть-это смешно. Делая процессора сложно. Дело в том, что сделал руку так популярны среди мобильных устройств был большой.Слабо представляю, что они задумали, прежде чем Интел.
Создан 12-06-2017 06:17 T. Sar

Intel не контролирует рынок чипов для ПК и не контролирует это в течение многих лет. И причина, по которой разработчики микросхем перешли с более быстрых часов на большее количество ядер, заключается в том, что более быстрые часы сталкивались с некоторыми фундаментальными физическими ограничениями. Решить проблему с большим количеством ядер было гораздо сложнее, поэтому они отложили ее до тех пор, пока это не станет наиболее экономически эффективным способом повышения производительности.
Создан 12-06-2017 08:07 Kevin Krumwiede

Это скорее разглагольствование о злой корпорации Intel, которая, по мнению IMO, не заслужена, так как ARM также дает независимым производителям чипов лицензии.
Создан 13-06-2017 10:35 Dmitry Grigoryev

По правде говоря, способность обеспечивать вычислительную мощность (если вы это подразумеваете под энергией) в коротких пакетах также крайне важна для настольных компьютеров. Вот почему у них есть TurboBoost на чипах Intel.
Создан 13-06-2017 10:39 Dmitry Grigoryev

Да, вычислительная мощность - это то, что я имел в виду. Правда, все устройства, которые могут ожидать бурной рабочей нагрузки в определенный момент времени (включая телефоны и настольные ПК), должны быть в состоянии справиться с этим. Основным отличием является отвод тепла.
Создан 13-06-2017 07:38 Tara Eicher

Я согласен с тем, что вы сказали, просто хотел отметить, что интенсивная нагрузка не относится только к телефонам.
Создан 15-06-2017 07:45 Dmitry Grigoryev

Я продолжаю видеть заявления типа «ядра ARM гораздо менее мощные» - что это означает? У них меньше часов?
Создан 13-06-2017 11:08 Abdul

@Abdul меньше операций в секунду. Чипы x86 могут выполнять несколько операций одновременно, поэтому они превосходят ARM даже при одинаковой тактовой частоте. Посмотрите на это сравнение: верхний чип ARM (GT-I9100) примерно в 10 раз медленнее, чем верхний чип x86 (i7-2920XM).
Создан 13-06-2017 12:45 Dmitry Grigoryev

Является ли «операций в секунду» синонимом FLOPS?
Создан 13-06-2017 12:26 Abdul

@Abdul Не обязательно. На самом деле, помимо игр и симуляций физики, с плавающей запятой используется не так уж много. Кроме того, многие чипы ARM достигают приличных FLOPS, снижая точность, поэтому это не единственное истинное измерение.
Создан 13-06-2017 12:29 Dmitry Grigoryev

Приложения Android не работают на виртуальной машине Java. Они бегут на Далвик В.М.
Создан 13-06-2017 04:30 phuclv

Это хорошее объяснение, почему мобильные телефоны намного мощнее настольных компьютеров. Или нет?
Создан 13-06-2017 02:01 maaartinus

«Это позволяет производителям использовать любое аппаратное обеспечение, которое они хотят, прежде чем беспокоиться о совместимости приложений». Это хорошо, но я не уверен, что это было целью системы, предназначенной (изначально) для камер.
Создан 13-06-2017 07:23 v6ak

«В каждом приложении может быть гораздо больше потоков для доступа к файлам, сети и т. Д.», Которые скорее связаны с вводом-выводом и не потребляют много ресурсов ЦП. Иногда ввод-вывод обрабатывается только одним потоком, потому что процессор намного быстрее, чем устройства ввода-вывода.
Создан 13-06-2017 08:21 v6ak

«Первые поколения устройств Android были известны запаздыванием, сбоями и многими другими неприятными вещами» - я помню, как запускал Marshmallow на таком телефоне (Xperia Mini Pro), и я думаю, что есть много других причин, по которым он медленнее, чем процессор. Они работали на малой оперативной памяти, имели более медленные флэш-устройства, такие как MTD (для некоторых операций гораздо медленнее, чем карты microSD), более старые Android имели менее эффективную «JVM» (которая технически не является JVM). Конечно, лучший процессор также помогает, но я был бы далек от такого вывода.
Создан 13-06-2017 08:20 v6ak

Кроме того, такой стиль программирования, как выполнение операций ввода-вывода (или других длительных операций) в потоке пользовательского интерфейса, может замедлять работу приложений независимо от производительности процессора. AFAIK, этот стиль довольно распространен в ранних приложениях для Android. Такие приложения могут отставать даже от современных телефонов. Они будут, вероятно, менее запаздывающими, но это больше связано с более быстрой флэш-памятью, чем с более быстрыми процессорами или большим количеством ядер.
Создан 14-06-2017 06:34 v6ak

Многое из этого часто выполняется и на ноутбуке. И многозадачность не должна быть требовательной к процессору. Разница в затратах на производство может вызвать некоторые различия и может стать причиной меньшего количества ядер для процессоров с низким уровнем производительности, но я сомневаюсь, что производственные затраты - единственная причина, почему не все i7 имеют по крайней мере четыре ядра. Я считаю, что производственные затраты - это лишь малая часть стоимости этих процессоров.
Создан 14-06-2017 05:35 v6ak

@ v6ak, проблема в том, что ядра x86 больше и сложнее, процессоры от intell (или amd) просто недостаточно хороши, чтобы быть топ-моделью. Фактически, большинство из них блокируется некоторыми частями и становится младшим i7 или Pentiums. Ядра ARM выглядят менее хитрыми, поэтому не так много моделей поступают каждый год. До сих пор верным октановым ядром был Samsung Exynos Octa 7xxx, MTK Helio X10, Latest (X30), даже предлагали немного (4) .Middle (4) .BIG (2), мы можем ей в рекламе сказать, что это 10-ядерный процессор, дешевый маркетинг делает это вещь
Создан 14-06-2017 06:42 Flippy

Как вы уже отметили, комбинированная стратегия big.LITTLE (технически HMP, гетерогенные кластеры мультиобработки) является основной причиной стольких (а иногда и подавляющего числа) ядер. Мобильное устройство часто работает в нескольких сценариях, включая как тяжелые, так и легкие.
Примером экстремального потребительского класса является MediaTek Helio X20, который имеет 2 ориентированных на производительность ядра A72, 4 сбалансированных ядра A53 и 4 энергосберегающих ядра A35. Это очень гибко в разных случаях использования. Тем не менее, я думаю, что 8 ядер 2 кластера обычно достаточно.
Есть также еще один пример, похожий на настольный компьютер, серия Qualcomm Snapdragon 800 (S 800, S 801 и S 805). В каждом SoC есть только 4 ядра одной и той же микроархитектуры, с 2 тактами выше и 2 тактами ниже. Qualcomm сделал эти SoC, потому что они были очень уверены в своей собственной микроархитектуре (Krait 400 и Krait 450).
Для игр, даже если они, по-видимому, требуют производительности графического процессора, а не процессора, они по-прежнему сильно нагружают процессор. Графический процессор не может работать в одиночку без предоставления каких-либо данных для обработки, и это одна из основных задач, которую процессор выполняет во время игры. В большинстве игровых случаев графический процессор воспроизводит только графику, тогда как все другие задания, такие как загрузка данных, ресурсов и ресурсов, а также вычисление игровой механики, такой как система, окружающая среда и физика, выполняются процессором. Вы не будете наблюдать более высокую частоту кадров, если обновите свой графический процессор, придерживаясь младшего процессора.
Вторая причина заключается в том, как Android использует ресурсы процессора. Android в значительной степени создает собственную среду приложений. Он использует только коды (и API) из Java, но у него есть собственная виртуальная машина с именем Dalvik, которая позже была заменена на ART (API Level 21). APK имеют свои исполняемые коды в «нейтральном» формате, очень похожем на файлы .class в Java. Перед запуском коды снова компилируются в нативные инструкции машины [1]. Процесс компиляции является многопоточным и может использовать многоядерные процессоры для повышения производительности.
И когда приложение работает, есть несколько других процессов и механизмов (таких как сборщик мусора), которые работают рядом или параллельно с приложением. Большее количество ядер может обеспечить более эффективную работу вспомогательных процессов, а также основного приложения.
1. Если вы используете идентификатор типа файла, вы обнаружите, что «оптимизированные» файлы dex представлены в формате ELF, а «нейтральные» файлы dex - в собственном формате.
Другая меньшая причина заключается в том, что ядра ARM не могут работать так же быстро, как чип Intel x86. Микроархитектура Intel x86 может быть датирована 1976 годом, когда началось проектирование чипа Intel 8086, что означает, что x86 разрабатывался в течение длительного времени. Одно современное высокопроизводительное ядро ​​ARM Cortex-A73 обладает такой же мощью, как ядро ​​Intel Clarkdale, на примере Core i5-660 (GeekBench, одноядерный). Это связано с тем, что x86 является микроархитектурой CISC, а ARM - микроархитектурой RISC. Вы, конечно, не хотите, чтобы телефон стал тормозить только с двумя или около того активными приложениями. Больше ядер поможет снять давление. Вот почему двухъядерные SoC относительно популярны только на умных часах. Кому нужна производительность на умных часах?
Интересно, что большее количество ядер приведет к меньшему энергопотреблению, чем одно ядро ​​при той же нагрузке. Соотношение между частотой процессора и энергопотреблением более чем линейное, поэтому удвоение частоты всегда приводит к потреблению более чем в два раза, или даже в 3 или 4 раза больше энергии, обеспечивая при этом производительность менее чем в два раза (из-за других ограничений ресурсов, таких как кэш-память ). Таким образом, 4 ядра могут легко обойти одно ядро ​​при одной и той же нагрузке, обеспечивая лучшую производительность и одновременно требуя меньше энергии.
Дальнейшее чтение:

Почему 8 и 10 процессорных ядер в смартфонах - хорошая идея - урок на кухне
Почему у некоторых телефонов есть два четырехъядерных процессора, а у некоторых аналогичное тактовое ядро. Что лучше с точки зрения производительности?
Создан 23-07-2017 03:56

Причина как проста, так и сложна.
Короткий ответ: «потому что рынок мобильных телефонов никогда не был и не управляется Intel».
Длинный ответ слишком длинен, чтобы возобновить здесь, но основная концепция заключается в том, что Intel годами доминировала на рынке ПК всеми возможными способами, вплоть до того, чтобы платить и портить (и быть оштрафованным за это), чтобы его процессоры были первый и единственный выбор для производителей ПК.
Полный контроль над рынком позволил Intel взвинчивать цены на ЦП, искусственно решая, какие функции и сколько вычислительной мощности потребуются пользователям, и если вы немного проанализируете историю Intel, вы заметите, что ее основная сила в основном заключается в увеличение частоты процессоров, поэтому он в основном никогда не пытался сделать что-то действительно умное или инновационное; и он не нуждался в этом, потому что он может просто сказать людям: «Вам не нужно больше ядер, но у меня есть эти сочные новые процессоры, которые работают на 100 МГц быстрее». В то же время он может продавать многоядерные процессоры на рынке серверов по абсурдно высоким ценам.
(потому что серверам всегда требовалось огромное количество параллельной мощности, до такой степени, что в настоящее время существует тенденция пытаться реализовать серверы, которые используют ... угадайте, что? Сотни ваших дешевых процессоров для телефона работают параллельно)
Это, в свою очередь, отразилось на сообществе разработчиков, которое никогда не догадывалось о важности параллельного программирования, так что многие, если не большинство из них, никогда не удосужились использовать более одного потока за раз - или выразить его в не техническим способом, когда их программное обеспечение выполняет более одной задачи одновременно. Что, кстати, имеет смысл, когда 99% вашей клиентской базы имеют максимум два ядра. К сожалению, это привело к легенде о том, что параллельные алгоритмы действительно трудно реализовать, и они применимы только к небольшому подмножеству проблем.
Вместо этого, наконец, мобильный рынок никогда не видел успеха Intel; Наоборот, фактически, так как в большинстве случаев Intel пытается сделать что-то отличное от обычной архитектуры X86. Таким образом, отсутствие влияния и контроля на рынке, другие производители процессоров пошли в направлении, которое было нормой целую вечность за пределами рынка ПК: параллельные вычисления.
Создан 11-06-2017 06:24 motoDrizzt25816

Происходят два фактора: один очень практичный, а другой исторический.
Практическая причина - использование смешанных архитектур в телефонах. Потребление энергии имеет решающее значение для телефонов, и телефоны проводят много времени в режимах, где они требуют очень мало производительности. Имеет смысл оптимизировать некоторые ядра для минимального энергопотребления, когда требуется небольшая производительность, а некоторые ядра оптимизированы для обеспечения максимальной производительности, когда это необходимо.
Другая причина в значительной степени историческая. До 2005 года настольные процессоры были одноядерными. Повышение производительности процессоров для настольных ПК состояло почти исключительно в создании ядра, способного выполнять как можно больше инструкций в секунду. Даже сегодня настолько много программного обеспечения для настольных компьютеров не может в полной мере использовать преимущества нескольких ядер, что многие предпочли бы процессор с 4 ядрами, а не 8-ядерный процессор с ядрами на 20% медленнее.
Чтобы получить как можно больше производительности от одного ядра, требуется огромное количество ресурсов процессора. Это недвижимость, которую в противном случае можно было бы использовать для обеспечения большего количества ядер. Вот почему новейшие процессоры Intel Kaby Lake имеют максимальную производительность в 4 ядра, и люди покупают их, потому что каждое ядро ​​работает быстрее, чем ядра их предшественника. Для многих они являются обновлением даже от процессоров с большим количеством ядер.
Со временем вы ожидаете увидеть гораздо больше настольных программ, полностью оптимизированных для поддержки большего количества ядер. Как только это произойдет, инженерные компромиссы начнут отдавать предпочтение большему числу ядер по сравнению с более быстрыми ядрами на настольных ПК. Хотя ядра почти наверняка будут работать быстрее, вы увидите, что люди предпочитают 8-ядерный ЦП, а не 4-ядерный ЦП, даже если каждое ядро ​​работает на 20% медленнее. Дизайнеры чипов будут следить за рынком.
Создан 11-06-2017 06:32 David Schwartz35413

Для телефона важно иметь возможность обеспечивать вычислительную мощность в коротких пакетах (нам нужны определенные приложения, чтобы быть быстрыми), но также избегать перегрева (рассеивание тепла гораздо сложнее для телефонов, чем для ноутбуков или ПК). Для этого архитекторы проектируют телефоны для использования одного ядра, когда рабочая нагрузка мала, и предоставляют дополнительные ядра для повышения производительности, когда это необходимо. Если бы в телефонах использовалось меньше крупных ядер, перегрев стал бы проблемой, даже если рабочая нагрузка довольно мала.
Источник: Курс по компьютерной архитектуре для выпускников.
Создан 13-06-2017 07:02

Во-первых, виртуальная машина Java исторически может выиграть от многоядерности больше, чем обычное программное обеспечение для настольных компьютеров. Даже если вы напишите однопоточное приложение на Java, оно будет работать быстрее на многоядерном, потому что большая часть кода сборщика мусора будет работать вместе с вашим приложением.
Во-вторых, в фоновом режиме на вашем телефоне происходит много событий: автоматические обновления, загрузка рекламы, антивирусное программное обеспечение, управление GSM-модулем и т. Д. На ноутбуке все эти задачи едва ли бы заняли одно ядро, но ядра ARM гораздо менее мощный, поэтому вы можете иметь хотя бы пару из них, предназначенных для фоновых задач, если вы хотите адаптивную систему.
Наконец, есть маркетинг. Не многие пользователи могут оценить, выиграют ли они от 8 ядер, но 8-ядерный смартфон, безусловно, звучит дороже, чем 2 или 4-ядерный.
Создан 13-06-2017 10:40 Dmitry Grigoryev451418

Ответы до сих пор объясняют некоторые аспекты проблемы, приводящей к огромному количеству процессорных ядер на телефонах Android. Прочитайте это снова; Телефоны Android. IPhone уже целую вечность держится всего пару ядер и все еще работает намного лучше, чем любой флагман Android.
Дизайнеры Android сделали огромную ставку, решив выбрать программирование на Java и, как следствие, JVM в качестве среды выполнения приложений. Java, благодаря своим принципам проектирования, решает проблему необходимости компилировать и компилировать код для каждой архитектуры ЦП, прежде чем он может быть запущен на нем, жертвуя производительностью. Java представляет тяжелую и громоздкую виртуальную машину, обычно называемую JVM. JVM фактически эмулирует процессор на программном уровне, чтобы избежать необходимости компилировать код отдельно для каждого устройства. Думайте о JVM как о виртуальном процессоре, который имеет одинаковые свойства независимо от устройства, на котором он работает, поэтому код должен быть скомпилирован только один раз для JVM и затем может быть запущен на каждом устройстве. Это позволяет производителям выбрасывать любое оборудование, которое они хотят, прежде чем беспокоиться о совместимости приложений. Это также позволяет устройствам заполнять рынок как дрянными низкокачественными устройствами, так и качественными высококлассными, и в конечном итоге доминировать над ними.
Сама JVM - это просто спецификация, и люди могут разрабатывать свои собственные JVM, если они придерживаются этой спецификации. Оригинальный андроид JVM назывался Dalvik. В настоящее время Google заменил это на ART.
Теперь, в чем проблема с JVM? Это тяжелое программное обеспечение, которое потребляет много вычислительных ресурсов. Добавьте к этому некоторые другие свойства языка Java, такие как сборка мусора и потребление ресурсов JVM, просто становится слишком много для устройства со скромной аппаратной мощностью. Каждое приложение и системная служба, открытые на вашем устройстве, сами по себе являются экземпляром ART JVM, и к настоящему времени вы можете заключить, что для управления всеми ними требуется действительно мощное оборудование. Ситуация станет еще хуже, когда возникнет необходимость рисовать пользовательские интерфейсы.
Каждое приложение работает в нескольких потоках. Каждое ядро ​​процессора может запускать только один поток за раз. Каждое приложение имеет один основной поток, в котором оно выполняет работу, связанную с пользовательским интерфейсом. В каждом приложении может быть гораздо больше потоков для доступа к файлам, сети и т. Д. Обычно открыты больше приложений (и системных служб), чем ядер ЦП, и в результате обычно потоков гораздо больше, чем ядер ЦП. Таким образом, каждое ядро ​​должно постоянно переключаться между обработкой разных потоков, делая немного каждого и переходя к следующему. Это переключение занимает много времени для процессора, и в случае, когда приложения по сути являются JVM, эта задача становится еще более исчерпывающей. Увеличивая количество ядер, вы просто уменьшаете количество приложений (и, следовательно, потоков), о которых должно беспокоиться каждое ядро, и это повышает общую производительность.
На основании этого объяснения можно сделать вывод, что для нормальной работы Android требуется мощное оборудование. Первые поколения устройств Android были известны отставанием, сбоями и многими другими неприятными вещами. Но за эти годы эти проблемы были в основном решены с помощью мощного оборудования.
С другой стороны, iOS-приложение скомпилировано с машинным кодом и, следовательно, не нуждается в виртуализации. Используемый язык и операционная система также более эффективны и, следовательно, позволяют этим устройствам оставаться гладкими без необходимости использования какого-либо излишнего набора микросхем.
Создан 13-06-2017 07:29 DarthPaghius1192

Продолжая все вышеизложенное, могу сказать, что случаи использования ПК и телефона совершенно разные. ПК чаще всего используется в одном или нескольких приложениях (конечно, браузер с кучей вкладок требует много процессорных ядер, может отставать даже на топ-i-3), телефоны, используемые для многозадачности. По крайней мере, подключение к сети, отрисовка пользовательского интерфейса, системные триггеры, уведомления. Если вы откроете диспетчер задач на ПК, то там также будет много процессов, но они потребляют менее нескольких% мощности процессора даже на старом Core 2 duo.
4 ядра довольно дешевы (MTK 65x2 стоил 1 $ при запуске для OEM). Это также RISK против CISC, когда в последний раз не хватало производительности на ядро. Энергоэффективный! = Мощный, как мы видим здесь. Многоядерность идеально подходит для мобильных устройств, поскольку не требует серьезной нагрузки на один протектор и позволяет работать с несколькими задачами (но мы видим, что айфонам нужно меньше ядер и оперативной памяти из-за хорошего программного обеспечения, как в этом видео или других)
Создан 14-06-2017 02:31

Я думаю, что один из главных движущих факторов, помимо 4 или 8 (для больших: маленьких конфигураций), это просто маркетинг в данный момент.
Одна огромная проблема большого количества ядер заключается в том, что вы учитываете объем памяти. Обычно в настольных приложениях, когда вы хотите улучшить использование нескольких ядер, вам нужно дублировать структуры и использовать гораздо больше памяти, чем в однопоточном приложении. Этого не происходит, потому что ОЗУ очень дорого (особенно в кризисной ситуации с ОЗУ в 2017/2018 гг.). Маркетинг хочет больших цифр, но контроль хочет снизить цены на компоненты. Если вы видите баланс, который составляет менее 1 ГБ ОЗУ на ядро, то вы видите неудачный компромисс.
Создан 11-12-2018 12:56 Lothar991