Eclipse não usando dual core no ubuntu 9.10

2

Estou usando o eclipse no Ubuntu 10.10 32bit, quando estou compilando um enorme projeto android, ele está ficando mais lento Eu tenho 4GB de RAM mesmo (o que é apenas 25% usado) embora esteja ficando mais lento quando eu observei eclipse adicional está usando apenas uma CPU e criando 100% de carga em que, como outra CPU está tendo apenas 20% de carga, é este problema de eclipse ou problema do Ubuntu?

    
por Sandeep Manne 05.12.2011 / 10:27

3 respostas

3

O Eclipse e o Java Development Kit usados pelo Eclipse não têm nada a ver com o seu desenvolvimento, com o desenvolvimento de um Aplicativo Android usando o SDK padrão.

Para esclarecer este ponto, você pode considerar três fatos importantes:

  • você pode criar um aplicativo Android completo a partir da fonte sem usar o Eclipse
  • O Eclipse é apenas um IDE para o Android SDK, um grupo de elementos gráficos que podem acelerar seu fluxo de trabalho, nada mais e nada menos
  • O Eclipse usa um ambiente JDK quando o Android SDK não (o A. SDK usa nada mais do que o próprio SDK), eles simplesmente usam ambientes diferentes para executar e criar aplicativos, por isso é simplesmente enganoso dizer algo como "Eclipse não usando dual core ao compilar um enorme projeto Android "

Acho que, neste ponto, deve ficar claro o fato de que seu aplicativo é realmente compilado pelo próprio SDK e o que você está enfatizando como algo ruim geralmente é considerado uma coisa boa.

Aplicação multithreaded e, em geral, aplicação (com "aplicativo" agora eu quero dizer o SDK não seu aplicativo) que suporta sua execução dividida em vários trabalhos, traz um grande problema na mesa: uma boa e efetiva fase de depuração. Vamos dizer que você está compilando algo dividido em 4 threads, no istant X seu crash do compilador, a questão é: qual dos 4 é o bad guy? todos eles? apenas 1? 2? 3?

Considerando que um uso típico do Android SDK não é strongmente baseado em design multi-threaded (com isso eu quero dizer que um desenvolvedor pode esperar 1 ou 2 minutos no pior cenário, nada muda e o debug em multi-threaded ambiente com alguma simultaneidade em movimento é muito mais complexo e pode levar semanas sem obter nenhum resultado), a adoção de um design multi-thread pode facilmente fornecer mais contras do que profissionais, especialmente durante a fase de compilação e depuração.

No final, considerando o público de desenvolvedores, o alvo do Android, o que um aplicativo Android realmente é, esse tipo de design de software é provavelmente o mais apropriado e eficaz e não vou considerar a falta de um multi-threading compilando um coisa ruim.

    
por Micro 05.12.2011 / 13:12
3

Extraído da página wiki do eclipse .

  

CPU de vários núcleos

     

Devido a restrições de energia, há uma tendência para vários núcleos em uma CPU, em vez de apenas aumentar a frequência da CPU. O Eclipse poderia permitir que os desenvolvedores escrevessem programas multi-thread para aproveitar os crescentes núcleos de vários. Além disso, o próprio Eclipse poderia ser otimizado quando possível para execução em múltiplos núcleos.

O próprio Eclipse não possui suporte multi-thread, o que significa que não importa quantas CPUs / núcleos de CPU você tem eclipse será executado apenas em um de seus núcleos.

Mais adiante, a capacidade de um compilador usar vários núcleos de CPU / CPU dependerá de qual idioma você está usando para desenvolver seu projeto Android.

Alguns compiladores poderão usar vários núcleos de CPUs / CPU durante a compilação, mesmo que o IDE que você esteja usando não aproveite esses recursos.

O kernel Linux tem suporte para várias CPUs / Cores em um sistema desde o Kernel versão 2.0, permitindo que seus programas tirem proveito disso, mas o próprio programa precisa ter suporte para várias CPUs / Cores.

Para obter mais informações sobre como os trabalhos de multiprocessamento Symetric podem ser encontrados aqui .

Em suma: o Ubuntu tem suporte para SMP porque a versão atual do Kernel é & lt; 2.0 (também em 9.10, como você sabe), mas eclipse não tem a capacidade de usar várias CPUs / Cores. Além disso, mesmo se o eclipse tivesse, ele (durante a construção do projeto) dependeria da linguagem e do compilador que você está usando para o seu projeto.

Isso é tudo verdade, não importa qual compilador você está usando, incluindo os que estão no Android SDK.

    
por Bruno Pereira 05.12.2011 / 10:47
0

Supondo que você use make como o construtor do projeto, e suas dependências estão escritas corretamente, o melhor de você é provavelmente usar o make paralelo. Eu acho que o eclipse tem uma caixa de seleção para isso, mas se não adicionar apenas -j2 aos parâmetros do construtor (onde '2' é o número de trabalhos a serem executados simultaneamente - experimente e veja o que é melhor para você).

    
por ams 05.12.2011 / 13:08