LOADING...
Faça login e
comente
Usuário ou Email
Senha
Esqueceu sua senha?
Ou
Registrar e
publicar
Você está quase pronto! Agora definir o seu nome de usuário e senha.
Usuário
Email
Senha
Senha
» Anuncie » Envie uma dica Ei, você é um redator, programador ou web designer? Estamos contratando!

O Android realmente consegue usar oito núcleos ao mesmo tempo?

25 de maio de 2015 24

Processamento multi-thread já existe há uma década em nossos PCs, onde é comum vermos processadores com quatro, seis e até mesmo oito núcleos tanto da Intel quanto da AMD. Há cinco anos, a ARM começou a investir neste segmento ao trazer o primeiro processador dual-core para smartphones, e não parou por aí. De lá para cá vimos novos produtos sendo lançados com chipsets com processadores quad-core e mesmo octa-core. A MediaTek resolveu ir além ao lançar o Helio X20, o primeiro chipset com nada menos do que 10 núcleos.

Para controlar o alto consumo e grande aquecimento, a ARM desenvolveu a implementação big.LITTLE que consiste em mesclar núcleos potentes em conjunto com núcleos econômicos. Com isso, já vimos várias soluções deste tipo no mercado como o Exynos 7420 ou mesmo o Snapdragon 810. O kernel do Android é responsável por separar as instruções a serem processadas por cada núcleo. Assim, o sistema é quem decide o que o Cortex-A57 irá lidar, deixando tarefas mais leves para o Cortex-A53 que conta com desempenho inferior. Mas será que o Android consegue realmente usar todos estes núcleos de forma eficiente?

Escalonamento entre os núcleos de uma CPU e demais componentes do chipset

Os PCs atualmente precisam lidar com uma quantidade de informação muito maior do que nossos smartphones. Com isso, ter um processador quad-core realmente mostra uma vantagem considerável contra uma solução dual-core. Isso acontece porque grande parte dos programas para Windows são construídos visando o processamento paralelo. Isso quer dizer que quando você abrir uma determinada aplicação em seu computador, a CPU poderá quebrar todos os blocos de instruções a serem processados e dividir a carga entre cada núcleo. No entanto, aquelas que não foram compiladas desta forma terão que ser totalmente processadas por um único núcleo, o que acaba reduzindo a vantagem de ter uma CPU com quatro ou mais unidades.

Multi-thread no Android

Como dito anteriormente, os PCs já contam com soluções multi-core há muito tempo. Isso permitiu que os desenvolvedores adaptassem suas aplicações para tirar o melhor proveito possível de tantos núcleos disponíveis. No entanto, mesmo após uma década, ainda há soluções que são focadas apenas em sistema single-core, o que acaba não sendo tão efetivo. Como os smartphones entraram neste mundo a menos tempo, é normal vermos vários aplicativos que ainda usem apenas um núcleo por vez. Mesmo com a Google e Qualcomm criando diretrizes para que desenvolvedores explorem todo o potencial de termos processadores potentes em celulares, muitas das aplicações atuais não tiram proveito disso.

Um teste realizado usando um processador octa-core mostrou que nenhum aplicativo do Android consegue usar todos os oito núcleos ao seu favor. A grande maioria ainda continua tirando proveito de apenas dois núcleos por vez. Isso quer dizer que é totalmente desnecessário ter um smartphone octa-core atualmente? Não é bem assim. Diferentemente dos PCs, os smartphones não lidam só com aplicações. Eles também precisam controlar as sincronizações dos seus apps, gerenciar os seus widgets, administrar suas conexões (Wi-Fi, Bluetooth, NFC, 3G/4G, GPS, etc) tudo ao mesmo tempo. E quem lida com tudo isso é a CPU do aparelho.

Testando o multi-processamento no Android

O teste foi realizado com dois smartphones: o primeiro deles conta com chipset Qualcomm Snapdragon 801, um quad-core 32-bit que esteve presente nos principais lançamentos de 2014; e o segundo vem com o Snapdragon 615, atual chipset octa-core 64-bit da Qualcomm voltado para o mercado intermediário. Foi usada uma ferramenta própria para medir a carga de processamento que é distribuída para cada núcleo ao abrir um aplicativo. O primeiro teste foi feito com o Chrome rodando na solução quad-core.

Chrome usou bem todos os núcleos na maior parte do tempo

Ao analisar o gráfico acima, podemos notar que o navegador da Google consegue usar todos os núcleos do Snapdragon 801, mostrando que na maior parte do tempo, as instruções são bem distribuídas entre cada unidade. Quando é analisado o uso de cada núcleo, podemos ver abaixo que o máximo que foi utilizado foi de 90%. Isso mostra que o navegador realmente faz um bom uso, mas ainda sobra 10% de processamento que acaba sendo desperdiçado. Claro, a Google ainda pode trabalhar para que consiga extrair ainda mais desempenho com algumas correções no Chrome, mas ter um smartphone com chipset quad-core irá fazer com as páginas web sejam renderizadas mais rapidamente do que em smartphones dual-core.

Em nenhum momento foi usando todo o poder de processamento

Será que o mesmo acontece com oito núcleos? Ao refazer o teste com Snapdragon 615, podemos notar que raramente eram usados todos os núcleos do chipset. Aqui, na maior parte do tempo, o Chrome usou apenas 4 a 6 núcleos. Isso mostra que nem mesmo a Google ainda tira proveito de soluções octa-core, imagina outros desenvolvedores. Quando analisamos a carga em cada núcleo, é constatado que o uso acaba sendo bem menor. Isso mostra que uma otimização ainda precisa ser feita pela Google, onde boa parte do processamento acaba sendo desperdiçado pelo navegador.

Em chipsets octa-core, todos os núcleos são usados, mas não todo o tempo

E em outros aplicativos, como ficam a situação? Com o Gmail, foram usados apenas dois núcleos na maior parte do tempo no Snapdragon 801 com carga máxima de 50%. Já no Snapdragon 615, o uso chegou a até 4 núcleos com carga máxima de 35%. O mesmo aconteceu com o YouTube, mas na solução octa-core apenas três núcleos chegaram a ser usados.

Com relação a jogos, em RipTide GP2, dois núcleos foram usados no Snapdragon 801, enquanto até seis núcleos foram usados no Snapdragon 615. Já com o Temple Run 2, apenas um núcleo foi usado no chipset quad-core, enquanto na solução octa-core foram usadas de quatro a sete unidades.

A parte mais curiosa é que até mesmo benchmarks, como o AnTuTu, não usam os oito núcleos do Snapdragon 615. Como pode ser visto no gráfico abaixo, na maior parte do tempo foram usados apenas quatro núcleos. No entanto, ele conseguiu usar 100% do potencial do hardware em grande parte do tempo. Isso serve para reforçar o fato de que benchmarks não mostram uma realidade, já que nenhum aplicativo analisado usou todo o potencial da CPU.


Conclusão

Podemos concluir que não há necessidade de termos um smartphone com chipset octa-core? Muito pelo contrário. Pelos testes realizados ficou claro que nenhum aplicativo irá usar todo o potencial do hardware do seu smartphone. Mas em muitos casos, vimos que em soluções quad-core, apenas dois núcleos eram usados, enquanto em processadores octa-core tínhamos seis deles trabalhando em conjunto. Isso mostra que ter mais núcleos realmente vale a apena. Mas esses dois que ficam de lado? Eles podem cuidar de outras tarefas, como atualizar os seus widgets, gerenciador os seus dados ou mesmo controlar a sincronização dos seus aplicativos. O mesmo deverá acontecer com chipsets com 10 núcleos.

Temos que admitir que será necessário um maior empenho dos desenvolvedores. Como dito anterior, muitos dos apps ainda ficam presos a apenas dois núcleos por vez. Com o avanço de chipsets mais parrudos, deveremos ver uma maior quantidade de aplicações multi-thread aparecerem e aí sim veremos todo o potencial de smartphones com tantos núcleos disponíveis. O mais importante a saber é que, mesmo neste momento, ter um smartphone octa-core traz um ganho considerável no desempenho comparado a outros com hardware quad-core.


24

Comentários

O Android realmente consegue usar oito núcleos ao mesmo tempo?
  • Download free ringtones here!

      • Pq o Android não usa o potencial dos 8 núcleos sendo 4 núcleo de 2.5 mais rápido que 4 do octa axei uma droga metade do processador dormindo em apps pesados diminuiria muito o lago espero que o Android 7 corrija

          • E mais snapdragon 801 e mais rápido pq ?

              • Claro que o Android não consegue usar todos esses núcleos, nem aplicativos existem para todo esse processamento.

                portanto, é um desperdício.

                  • Um processador de pelo menos 8 núcleos, no mundo mobile, utiliza do melhor dos mundos entre consumo de bateria e potência em uso mais pesado. Isto porque eles são 4+4, isto é, 1 QuadCore com clock maior, equivalente aos processadores dos Tops; e 1 QuadCore com clock mais baixo, equiparando com os processadores mais básicos dos Mids.

                    Com isso os programas que rodam em segundo plano utilizarão a parte mais lenta do processador. Também vale para os programas mais leves. E este QC mais lento consome menos energia, trazendo uma economia na bateria. Nesta situação o QC mais potente fica em estado de hibernação. Ele está com energia, para funcionar assim que for necessário, mas seu consumo é irrelevante.

                    Quando ocorre uma necessidade além do QC baixo, então o QC potente entra em ação, aumentando assim o desempenho.

                    Os processadores x86 e x64-86 possuem um trabalho de "sob demanda", onde alteram sua velocidade de clock conforme a necessidade de trabalho.
                    Como exemplo, meu AMD A8 trabalha de 800 MHz (economia de energia) a 1,6 GHz (moderado), indo a 2,5 GHz quando em desempenho.

                    Como a arquitetura ARM possui um modo de trabalho diferente e a estrutura de um smartphone é diferente de um Desktop / Notebook, não é possível ainda utilizar um processador de clock variável.

                    • Fui ler a matéria original, e já no título percebe-se o foco distorcido. "Fato ou Ficção: aplicativos Android usam somente 1 núcleo do processador" (em tradução livre).

                      Só aí vemos que o intuito da reportagem não era demonstrar / verificar se os programas usam todos os núcleos, mas sim se eles usam mais de 1. Infelizmente o sensacionalismo e a banalização na tentativa de chamar a atenção do leitor faz com que o redator / tradutor molde o foco do texto ao seu bel-prazer.

                      Seguindo um pouco mais a leitura, nos deparamos com gráficos jogados com poucas informações. Neste ponto, defendo o redator do TC, pois nesta parte realmente resumiu para somente o necessário.
                      Mas é notório perceber que, sendo os gráficos formados por utilização de 1 único aplicativo, é inviável e inadmissível que o mesmo utilize 100% de 100% dos núcleos. Simplesmente porque há um S.O. e outros programas necessários rodando em segundo plano.

                      Questionar se um processador de 8+ núcleos é interessante ou não é no mínimo desconsiderar para que eles foram criados: Economia de bateria.

                        • Um teste realizado usando um processador octa-core mostrou que nenhum aplicativo do Android consegue usar todos os oito núcleos ao seu favor. A grande maioria ainda continua tirando proveito de apenas dois núcleos por vez. Depois descem a lenha no iPhone pq ele tem apenas 2 núcleos...

                            • Sim. A Apple continua tendo o melhor desempenho por núcleo. Ela sacrifica o "multi-core" para ter núcleos mais parrudos. E ainda sim lida bem com tarefas em segundo plano.

                              • Faltou mais explicações ai meu amigo... A grande sacada do processadores de 08 Núcleos, e a agora o de 10 da MediaTek, é como eles trabalham a favor da bateria, sembre buscando primeiramente trabalhar com 04 Núcleos mais Fracos, e se preciso ativar os demais núcleos... Para as principais tarefas, apenas 04 núcleos dão conta do recado economizando bateria... Sendo aplicativos mais pesados como Jogos, Câmera e o Crome (infelizmente), acabam utilizando mais poder de processamento e ativando os demais núcleos...

                                Voltando ao Aplicativo do navegador Crome, na verdade não é que ele não se aproveita melhor do processador, pelo contrário, por ser um aplicativo extremamente pesado, ele acaba tendo que acionar mais núcleos que estavam desativados, prejudicando o consumo de bateria, o bom seria ele rodar perfeitamente em 04 núcleos.

                                Falta o Google desenvolver melhor o Android para gerenciar o uso de mais núcleos a favor da bateria, e não apenas do desempenho, mas isso é normal e aceito em sistemas de código aberto, onde Software e Hardware não são desenvolvidos em conjunto, como é o caso de Iphone's e Windows Phone, que conseguem fazer com que o software aproveite quase 100% dos benefícios do Hardware.

                                  • Faltou mais explicações ai meu amigo...

                                    A grande sacada do processadores de 08 Núcleos, e a agora o de 10 da MediaTek, é como eles trabalham a favor da bateria, sembre buscando primeiramente trabalhar com 04 Núcleos mais Fracos, e se preciso ativar os demais núcleos... Para as principais tarefas, apenas 04 núcleos dão conta do recado economizando bateria... Sendo aplicativos mais pesados como Jogos, Câmera e o Crome (infelizmente), acabam utilizando mais poder de processamento e ativando os demais núcleos...

                                    Voltando ao Aplicativo do navegador Crome, na verdade não é que ele não se aproveita melhor do processador, pelo contrário, por ser um aplicativo extremamente pesado, ele acaba tendo que acionar mais núcleos que estavam desativados, prejudicando o consumo de bateria, o bom seria ele rodar perfeitamente em 04 núcleos.

                                    Falta o Google desenvolver melhor o Android para gerenciar o uso de mais núcleos a favor da bateria, e não apenas do desempenho, mas isso é normal e aceito em sistemas de código aberto, onde Software e Hardware não são desenvolvidos em conjunto, como é o caso de Iphone's e Windows Phone, que conseguem fazer com que o software aproveite quase 100% dos benefícios do Hardware.

                                      • por isso a apple nao faz processador de 8 núcleos ela sabe tirar melhor proveito de seu uso

                                          • sei que essa matéria é só copia e cola, mas estranhos esses gráficos sem rótulos das ordenadas e abscissas... não dá pra ler assim haha

                                              • Estranho esses testes, pois quando tu abre o CPU-Z por exemplo ele te mostra os núcleos trabalhando em tempo real, e só em abrir outro aplicativo ele já coloca todos os núcleos para trabalhar, e quando tu deixa parado, ele usa apenas o 1º e segundo núcleo, alguma coisa tá estranha nesse teste.

                                                  • Ele pode chegar a utilizar todos os nucleos sim, mas não exatamente com o app/programa que você abriu. Outros serviços e programas estão rodando em segundo plano tbm e necessitam de processamento.

                                                    • Iphone com seu dual-core poderoso '-' apple é fodona

                                                        • Só fico pensando porque não testaram jogos mais potentes... Realmente é desperdício, mas precisava avaliar em uso real.

                                                            Samsung e Google podem seguir Apple e usar mesma tecnologia de lente do iPhone 15 Pro Max

                                                            Estão chegando! Motorola Razr Pro e Razr Lite têm possível data de lançamento vazada

                                                            Xiaomi 12S Ultra supera iPhone 13 Pro Max em teste de desempenho em jogos

                                                            Motorola Moto G Go aparece no Geekbench após ter design oficial e especificações vazadas