No Linux, como saber quantos núcleos da máquina estão ativos? Presumo que um teste para isso funcionaria também para o Android. Preciso saber se mais de um núcleo está ativo. Estava pensando em testar isso fazendo com que um processo crie muitos threads. É possível que um thread consulte em qual processador está? Dessa forma, é possível saber se vários núcleos serão usados sob carga pesada. Não tenho certeza se estou no caminho certo.
13
Respostas:
Você pode usar
top
para listar a utilização de cada núcleo. Pressione 1, se necessário, para dividir a linha da CPU em uma linha separada para cada núcleo.Você também pode adicionar uma coluna que mostra o último núcleo usado para cada processo. Pressione f para exibir a lista de campos e, em seguida, j para ativar a coluna "P". Em seguida, pressione espaço para retornar à exibição ao vivo.
fonte
top
para listar os tópicos separadamente. Ou você pode escrever um programa com um loop infinito e executá-lo várias vezes.ps
possui um campo chamadopsr
para informar em qual processador um trabalho está sendo executado.Então você pode usar algo como:
Observe que apenas rodar
ps
dessa maneira naturalmente tornará ativo pelo menos um núcleo.Provavelmente melhor é executar isso:
Dessa forma,
sort
ewc
não aumentam a contagem.fonte
ps
, estamos ativando pelo menos 1 núcleo. ;-)Este comando funciona bem no ubuntu e no centos e mostra graficamente quantas CPUs e como elas estão sendo usadas.
para centos:
para o ubuntu:
fonte
Tente o seguinte:
Aqui está um link para um exemplo de Java Android.
fonte
/proc/cpuinfo
apenas informa quantos núcleos o sistema possui e você precisaria fazer mais docat /proc/cpuinfo
que responder pelo HyperThreading.Você pode usar cat / sys / devices / system / cpu / possible ou cat / sys / devices / system / cpu / online. Possível é principalmente no caso de você ter isolado um processador para executar algum programa específico.
fonte