7

Я разработчик для Android и провожу много времени в ожидании, поэтому я начал думать о двойной установке Xeon.

Я знаю, что, например, для решения 3D-рендеринга - дополнительные ядра линейно улучшают скорость, так что мой вопрос - уменьшится ли время сборки Android Studio так же? А если не линейно то хотя бы заметно сделать обновление стоящим?

Я знаю, что AS имеет многоядерную поддержку, но просто хотел убедиться, что он будет использовать все 20 ядер так же, как и 4, прежде чем я начну тратить деньги.

Было бы здорово услышать от кого-то, кто имеет опыт сравнения двойных Xeons с настройками i7 для тех же сборок проекта, но любая информация поможет!

-

ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ:

Прежде чем вы порекомендуете взглянуть на другие способы повышения скорости - позвольте мне заверить вас, что я попробовал все - быстрый SSD, много оперативной памяти, все возможные параметры Gradle и IDE, абстрагировали некоторые зависимости для сборки для релизных сборок только для того, чтобы избежать multidex , последняя версия AS, Instant Run / JRebel и т. д.

3 ответа3

15

Таким образом, я должен был найти это трудным путем. В моем случае, с моим проектом и оборудованием, он не использовал все ядра. Я провел некоторые базовые тесты с другим оборудованием, которое у меня было, но возьмите их с небольшим количеством соли - вы должны понимать, что требования и настройки могут сильно повлиять на результат.

Детали тестирования

Так что это аппаратное обеспечение у меня было:

  • i7 6700k (4 ядра)
  • i7 3770k (4 ядра)
  • 2 х Xeon E2650 v4 (24 ядра)

Все работает на базе часов с гиперпоточностью. И SSD:

  • Samsung 840 EVO Basic SSD 240 ГБ
  • Мушкин ECO2 SSD 240GB
  • Samsung SM951 NVMe SSD 250 ГБ

На каждом диске была установлена Windows 10, поэтому я попытался проверить две вещи - скорость процессора и скорость диска, меняя диски между компьютерами.

Xeons и 6700k имели DDR4 Ram, а 3770k имели DDR3.

Читайте график снизу вверх:

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

Перестроить после очистки: Build -> Clean project, Build -> Rebuild project

Rebuild: Build -> Rebuild Project

Запуск при сборке: запуск и запоминание времени ожидания при первом запуске после восстановления

Запустите снова: продолжайте запуск без изменений для прогрева демона gradle

Изменить один журнал: изменить строку внутри Java Log.v и перестроить

С установкой без изменений: время от нажатия кнопки запуска до открытия на экране

Время запуска симулятора: выше времени минус время сборки Gradle

Выводы для меня были таковы:

  1. Быстрее SSD СДЕЛАЕТ сбрить секунды
  2. На данный момент следует придерживаться самых быстрых одноядерных процессоров.

Надеюсь, это поможет кому-то!

PS пробовал бенчмаркинг сборки Xcode на том же оборудовании - почти такая же история

2

Я пытался измерить скорость Android Studio 3.1.4 на том же оборудовании: Macbook Pro 2011, RAM 4 Гб, SSD 240 Гб Samsung, Core i5 2,4 ГГц. Я установил на эту машину 3 разные ОС: Windows 10, MacOS Hight Sierra 10.13, Ubuntu 18.04. Среднее время сборки (рабочая команда: gradlew clean build, gradlew clean Сборка выпуска) в MacOS/Ubuntu было примерно на 30% быстрее, чем в Windows.

На моей другой рабочей машине: Core i5 3.0 Ghz 7400, RAM 16Gb, SSD 250Gb. Время сборки занимает 4,34 минуты на компьютере с Windows 10. Тот же проект на немного более медленном процессоре, но с той же оперативной памятью и SSD, на котором работает Ubuntu 16.04. Время сборки занимает в два раза быстрее! Что ж, я был шокирован результатами, но все же я выбрал Windows в качестве машины для разработки, потому что мне гораздо удобнее использовать удобную и удобную клавиатуру и программное обеспечение, чем в Unix-подобных системах. И даже если бы мне пришлось выбирать между MacOS и Ubuntu - Mac действительно намного проще в настройке, а Ubuntu слишком сложен для использования обычными людьми. Выбор за вами.

2

Есть еще один вариант увеличения скорости сборки: когда вы делаете приложение модульным, оно будет собираться асинхронно, поэтому каждый модуль будет использовать свое ядро ЦП.

И еще кое-что. Следите за своими библиотеками. Например, в большинстве случаев вам не нужна вся библиотека поддержки Google, исключаются неиспользуемые части или требуется только импорт.

И еще кое-что. Я не знаю, как ОС влияет на скорость сборки, но я думаю, что это как-то влияет. Когда я использую Linux против Windows, гораздо быстрее создать проект.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .