web-dev-qa-db-ja.com

Eclipseはubuntu 9.10でデュアルコアを使用していません

私はUbuntu 10.10 32ビットでEclipseを使用しています、巨大なAndroidプロジェクトをコンパイルしているとき、私は4GBのRAMさえ持っています(わずか25%使用されています)さらにEclipseは1つのCPUのみを使用しており、他のCPUが20%の負荷しか持っていないので、このEclipseの問題またはUbuntuの問題で100%の負荷を作成しています

2
Sandeep Manne

EclipseとEclipseで使用されるJava開発キットは、標準SDKを使用したAndroidアプリケーションの開発では、開発とほぼ関係ありません。

この点を明確にするために、3つの重要な事実を考慮することができます。

  • eclipseを使用せずにソースから完全なAndroidアプリをビルドできます
  • Eclipseは、IDE Android SDK、ワークフローを高速化できるグラフィカル要素のグループであり、それ以上でもそれ以下でもありません。
  • Eclipseは、Android SDKが使用しない場合(A. SDKはSDK自体ではなく何も使用しません)、JDK環境を使用します。異なる環境を使用してアプリを実行およびビルドするため、誤解を招くだけです。 「Eclipseは巨大なAndroidプロジェクトをコンパイルするときにデュアルコアを使用しない

この時点で、アプリが実際にSDK自体によってコンパイルされ、悪いこととして強調していることは通常良いことと呼ばれるという事実を明確にすべきだと思います。

複数のジョブに分割された実行をサポートするマルチスレッドアプリケーション、および一般的にはアプリケーション(現時点では "アプリケーション"であり、アプリではありません)は、テーブルに大きな問題をもたらします。あなたが4つのスレッドに分割された何かをコンパイルしているとしましょう。インスタントXではコンパイラがクラッシュします、問題は4つのうちどれが悪者ですか?それらのすべて?たった1つ? 2? 3?

Android SDKはマルチスレッド設計にあまり基づいていません(つまり、開発者は最悪のシナリオで1〜2分待つことができ、何も変わらず、外出先での同時実行を伴うマルチスレッド環境でのデバッグははるかに複雑で、結果を達成せずに数週間かかる可能性があります)、マルチスレッド設計の採用は、特にコンパイルの段階で、プロよりも多くの短所を簡単に提供できますデバッグ。

最終的には、Androidのターゲットである開発者の視聴者、Androidアプリケーションが実際に何であるかを考えると、この種のソフトウェア設計はおそらく最も適切かつ効果的であり、悪いことをコンパイルするマルチスレッド。

3
Micro

EclipseのWikiページ から取得。

マルチコアCPU

電力の制約により、単にCPU周波数を上げるのではなく、CPU上の複数のコアに向かう傾向があります。開発者は、Eclipseを使用することで、マルチスレッドプログラムを作成し、増え続けるmiltipleコアを活用できます。さらに、可能な限り複数のコアで実行するためにEclipse自体を最適化できます。

Eclipse自体はマルチスレッドをサポートしていません。つまり、Eclipseを持っているCPU/CPUコアの数は、コアの1つでしか実行されません。

さらに、コンパイラが複数のCPU/CPUコアを使用できるかどうかは、Androidプロジェクトを開発するために使用している言語によって異なります。

使用しているIDEがそれらを利用しない場合でも、コンパイル中に複数のCPU/CPUコアを使用できるコンパイラがあります。

Linuxカーネルは、カーネルバージョン2.0がプログラムを利用できるようにするため、1つのシステムで複数のCPU /コアをサポートしますが、プログラム自体は複数のCPU /コアをサポートする必要があります。

Symetricマルチプロセッシングの仕組みの詳細については、 here を参照してください。

つまり、現在のカーネルバージョンは2.0未満(ご存知の9.10でも)であるため、UbuntuはSMPをサポートしていますが、Eclipseには複数のCPU /コアを使用する習慣がありません。また、Eclipseに含まれていたとしても(プロジェクトのビルド中)、プロジェクトで使用している言語とコンパイラに依存します。

これは、Android SDK。

3
Bruno Pereira

Makeをプロジェクトビルダーとして使用し、依存関係が正しく記述されていると仮定すると、おそらく最も良いのは並列makeを使用することです。 I think Eclipseにはそのためのチェックボックスがありますが、_-j2ビルダーパラメーター(「2」は同時に実行するジョブの数です-最適なものを試してみてください)。

0
ams