Os laptops geralmente têm no máximo quatro núcleos e os dualcores são provavelmente mais comuns. Recentemente, mudei de quadcore para dualcore e posso confirmar que há um número limitado de casos de uso para quadcore, mesmo com tarefas intensivas da CPU.
Por outro lado, em telefones celulares, quadcores, hexacores e octacores parecem ser comuns. Por quê? Que tarefas podem utilizá-los?
Entendo que big.LITTLE pode fazer parte da resposta. Ou seja, o principal benefício de tantos núcleos não é a capacidade de usá-los simultaneamente, mas o uso de um núcleo com consumo de energia apropriado para a carga de trabalho atual. No entanto, por exemplo, o Snapdragon 625 possui oito núcleos Cortex-A53, o que não parece ser o caso de big.LITTLE.
Talvez a arquitetura ARM tenha um ponto mais baixo de desempenho ideal por watt. Ou seja, ter um único núcleo ajustado para obter o desempenho ideal por watt resulta em um desempenho mais baixo no ARM do que na Intel. Portanto, mais núcleos são usados para fornecer o desempenho. Esta é apenas uma hipótese.
Mas mesmo nesse caso, não vejo qual carga de trabalho pode usar com eficiência, digamos, oito núcleos em um telefone celular. Nos laptops, posso imaginar alguns como a compilação completa (não incremental) de um projeto. Mas em telefones?
- Os jogos podem consumir desempenho, mas geralmente exigem desempenho da GPU em vez da CPU, não é?
- Teoricamente, vários núcleos podem acelerar a compilação do Android Lollipop / Marshmallow AOT ao instalar ou ao atualizar (ou seja, a fase “Otimizando aplicativos 3/121”). No entanto, não tenho certeza se isso pode utilizar vários núcleos. Tanto quanto me lembro do código, apenas um aplicativo está sendo compilado por vez, mas talvez haja algum paralelismo no próprio processo de compilação.
- Além disso, o Android 7+ pode utilizar vários núcleos ao compilar. Porém, como ele é compilado quando ocioso e carregando, o benefício parece ser bastante mínimo. Pelo menos quando alguém carrega o telefone da noite para o dia - eu realmente não me importo se leva 30 minutos ou duas horas nesse cenário.