Обновить

Комментарии 7

А какая разница по времени, если всё устанавливаемые пакеты уже находятся в кеше?

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

Есть большое подозрение, что если канал будет шире, допустим, в два раза, то и "ускорение" будет не 4-5 раз, а 8-10. И наоборот, если уменьшить канал, то и "ускорение" уменьшится. А значит и ничего принципиально быстрого Go тут не делает, если это так

Главная киллер фича - параллельная загрузка - реализована уже как лет 5 с выходом composer 2, а до этого поддерживалась через плагины. Какую версию композера использовали для замеров?

Какие параметры указывали? По умолчанию он в параллель скачивает 12 пакетов 10 процессами, но можно это поменять. Попробуйте выкрутить на максимум и сравнить.

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

И ещё интересно сколько параллельных загрузок максимально эффективно, все сразу запускать в параллель как будто не оптимально. Но это уже чисто исследовательский интерес.

спасибо за комментарий, в ближайшее время я проанализирую и под вашим комментарием оставлю информацию

Ишь, умный какой. Сам напейсал или помог вселенский разум? Зачем пилить то, что уже работает хорошо и стабильно? Нечай, лодку раскачиваете, сударь

В Composer 2 давно применяется многопроцессная обработка пакетов. Ну и судя по исходному коду, данное творение целиком и полностью написано нейронкой, и это ни хорошо ни плохо. Скорее плохо, так как вероятность что проект будет заброшен или в нём не будут исправляться найденные ошибки (ввиду того что автор свой код сам не писал) очень велика. Но попытка интересная.

Зависимости не так часто меняются. Нет смысла их постоянно устанавливать. Дешевле перенести установку зависимостей в отдельный кешируемый слой в Docker file и переиспользовать его и в ci и при локальной сборке.

gomposer

Аналоги на другом языке, конечно, никогда не убьют композер (с учётом предоставляемого туллинга как отдельных пакетов, плагинной системы и пр.), но эксперимент интересный.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации