Задать вопрос
xez
@xez
TL Junior Roo

Gradle. Почему сборка на windows намного медленнее?

Провожу сравнение скорости сборки на разных платформах...
Проект для тестов производительности известный и общедоступный: https://github.com/spring-projects/spring-framework
Параметры запуска:
% java --version
openjdk 11.0.5 2019-10-15
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.5+10)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.5+10, mixed mode)

./gradlew clean build -x test --no-build-cache
Сборка занимает (по результатам нескольких запусков):
на Core i7 8750H (MacBook Pro) ~3:00 минуты
на Ryzen 7 2700 + Windows (Настольный ПК) ~3:45
на Ryzen 7 2700 + Linux (Настольный ПК) ~ 2:00

т.е. у *nix систем гигантское (почти в 2 раза) преимущество в скорости сборки!

Вопрос: Почему сборка на  windows намного медленнее? Ну или почему сборка на *nix системах намного быстрее? Есть идеи как ускорить сборку на windows?
  • Вопрос задан
  • 712 просмотров
Подписаться 3 Сложный 5 комментариев
Решения вопроса 1
mayton2019
@mayton2019 Куратор тега Java
Bigdata Engineer
Linux быстрее создает процессы (fork()). Это особенно видно при работе с консольными тулзами. И с теми-же тулзами которые портированы под Windows к примеру. Это одна причина. И вторая - это файловая система. Linux/Ext4 обычно менее затратная в обслуживании огромного количества мелких операций чем Windows/NTFS. Например проверка атрибутов безопасности в Linux - это проверка битовой маски. В Windows - чуть больше действий.

Ко всему конечно могут быть и другие различия в имплементации java под Windows которых я не знаю.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@tiroman
Тут есть некоторые личности которые утверждали что это ложь, я авторитетно заявлял что это так, я тоже проводил кучу опытов в попытке хотя бы сравнять производительность грэдла на линуксе, не получилось... Причем я скажу что все продукты intellij работают быстрее под линуксом, не только грэдл, причины я до конца понять не смог и решения не нашел, пожтому почти 5 лет сижу на линуксе

П.с. пробовал и open jdk и оракловский и много чего пробовал нашаманить
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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