Eclipse не использует двухъядерный на Ubuntu 9.10

Я использую Eclipse в Ubuntu 10.10 32bit, когда я компилирую огромный проект Android, он становится медленнее, у меня даже 4 ГБ оперативной памяти (который используется только на 25%), хотя становится медленнее, когда я наблюдал, что дальнейшее затмение использует только один процессор и создающий 100% -ную нагрузку на него, тогда как другие процессоры имеют только 20% -ную нагрузку, это проблема затмения или проблема Ubuntu

2
задан 5 December 2011 в 13:27

3 ответа

Взято из вики-страницы затмения .

Многоядерный процессор

Из-за ограничений по мощности наблюдается тенденция к использованию нескольких ядер на процессоре вместо простого увеличения частоты процессора. Eclipse может позволить разработчикам писать многопоточные программы, чтобы воспользоваться преимуществами растущих тысяч ядер. Более того, сам Eclipse может быть оптимизирован, где это возможно, для работы на нескольких ядрах.

Eclipse само по себе не поддерживает многопоточность, это означает, что не важно, сколько процессоров / процессорных ядер у вас затмение будет работать только на одном из ваших ядер.

Более того, способность компилятора использовать несколько процессоров / процессорных ядер будет зависеть от того, какой язык вы используете для разработки своего проекта Android.

Некоторые компиляторы могут использовать несколько процессоров / процессорных ядер во время компиляции, даже если используемая среда IDE не использует их.

Ядро Linux поддерживает несколько процессоров / ядер в одной системе, начиная с версии 2.0 ядра, что позволяет вашим программам воспользоваться этим, но сама программа должна иметь поддержку нескольких процессоров / ядер.

Более подробную информацию о том, как работает Symetric multiprocessing, можно найти здесь .

Вкратце: Ubuntu поддерживает SMP, потому что текущая версия ядра - < 2.0 (также, как вы знаете, 9.10), но затмению не хватает привычки использовать несколько процессоров / ядер. Также даже если бы у eclipse было это, оно (во время сборки проекта) зависело бы от языка и компилятора, который вы используете для своего проекта.

Это все верно, независимо от того, какой компилятор вы используете, в том числе и те, которые есть в Android SDK.

0
ответ дан 5 December 2011 в 13:27

Eclipse и Java Development Kit, используемые Eclipse, не имеют ничего общего с вашей разработкой, с разработкой Приложения для Android с использованием стандартного SDK.

Чтобы прояснить этот момент, вы можете рассмотреть 3 важных факта:

  • вы можете собрать полное приложение для Android из исходного кода без использования Eclipse
  • Eclipse - это только IDE для Android SDK, группа графических элементов, которые могут ускорить ваш рабочий процесс, не более и не менее
  • Eclipse использует среду JDK, а Android SDK - нет (A. SDK использует ничего, кроме самого SDK) они просто используют разные среды для запуска и сборки приложений, поэтому просто вводит в заблуждение, говоря что-то вроде: «Eclipse не использует двухъядерное ядро ​​при компиляции огромного проекта Android»

Я думаю, что на данный момент должно быть ясно тот факт, что ваше приложение на самом деле скомпилировано самим SDK, а то, что вы подчеркиваете как плохую, обычно называют хорошей.

Многопоточное приложение и, вообще, приложение (с «приложением» прямо сейчас, я имею в виду SDK, а не ваше приложение), которое поддерживает их выполнение, разделенное на несколько заданий, ставит большую проблему на стол: хорошая и эффективная фаза отладки. Допустим, вы компилируете что-то, разделенное на 4 потока, в istant X ваш сбой компилятора, вопрос: какой из 4 плохой парень? все они? только 1? 2? 3?

Учитывая, что типичное использование Android SDK не основано на многопоточности (я имею в виду, что в худшем случае разработчик может подождать 1 или 2 минуты, ничего не меняется, и отладка в многопоточной среде с некоторым параллелизмом на ходу намного сложнее и может занять несколько недель, не добившись каких-либо результатов), принятие многопоточной конструкции может легко дать больше минусов, чем плюсов, особенно на этапе компиляции и отладки.

В конце концов, учитывая аудиторию разработчиков, цель Android, то, чем на самом деле является приложение Android, такой дизайн программного обеспечения, вероятно, является наиболее подходящим и эффективным, и я не буду учитывать отсутствие многопоточности, компилирующей плохо.

0
ответ дан 5 December 2011 в 13:27

Предполагая, что вы используете make в качестве компоновщика проекта и ваши зависимости написаны правильно, вам лучше всего использовать параллельное make. Я думаю, что в Eclipse есть галочка для этого, но если не просто добавить -j2 к параметрам компоновщика (где «2» - это количество заданий, которые должны выполняться одновременно - экспериментируйте и посмотрите, что лучше для вас ).

0
ответ дан 5 December 2011 в 13:27

Другие вопросы по тегам:

Похожие вопросы: