Size: a a a

Programming Offtop

2020 June 01

D

Dmitry in Programming Offtop
Даниил Левицкий
Я слегка исследовал этот вопрос, но я мерил исключительно чистую  сборку с нуля для Android проекта, который на macbook pro 16 в топе чуть более 6 минут собирается.
Допустим на паре 12ядерных xeon (3 ггц) он собирается около 3х минут, но при этом на 8 ядерном xeon с той же скоростью погрешность не более 5 секунд. Хотя номинальная производительность у них более чем в 2 раза отличается (конфигурация ОЗУ одинаковая была).

Для JVM к сожалению все на микросервисах  и замерить изменения  крайне сложно, fat-jar не более 2х секунд  собирается
В андроид проекте что-то параллелится только для разных модулей, если есть один толстый модуль - он практически в 1 поток собирается. Это видно визуально, если открыть мониторинг цпу во время сборки...
источник

D

Dmitry in Programming Offtop
Даниил Левицкий
Всем привет. Задался изучением вопроса влияния железа на скорость разработки .

Может есть какие-то исследования, стата или личные наблюдения: как влияет скорость и объем ОЗУ, количество ядер/потоков, количество процессоров, размер кеша процессора, платформа AMD/Intel, на скорость сборки на JVM платформу (apk/jar/aar/war) , скорость работы функций IDE от JB (Android studio/ Idea) - автокомплит, подсветка, серч, замена, код анализ и т д?

При билде судя по всему потоки нагружаются равномерно, но сама ide ведет себя не всегда так. Другие исследования на редите для скорости GCC говорят, что скорость одного потока решает и i7 обгоняет дорогущий xeon gold. Хотя при компиляции ядра линукса побеждает именно общая производительность
джавак - однопоточный. Дексер вроде тоже. Про прогвард не знаю. Тут исследовать ничего не надо - достаточно погуглить.
Гредл может запускать несколько джаваков только если знает, что они не зависят друг от друга. Т.е. если это разные модули на уровне системы сборки.
источник

ML

Mikhail Levchenko in Programming Offtop
Dmitry
В андроид проекте что-то параллелится только для разных модулей, если есть один толстый модуль - он практически в 1 поток собирается. Это видно визуально, если открыть мониторинг цпу во время сборки...
а сам по себе javac не умеет в параллель?
источник

ML

Mikhail Levchenko in Programming Offtop
прикольно
источник

ML

Mikhail Levchenko in Programming Offtop
хотя казалось бы, хотяб парсинг то можно распараллелить
источник

QH

Quantum Harmonizer in Programming Offtop
казалось бы, разработчики котлина могли б взять да порвать их на этом поле
источник

QH

Quantum Harmonizer in Programming Offtop
Mikhail Levchenko
хотя казалось бы, хотяб парсинг то можно распараллелить
там копейки
источник

ML

Mikhail Levchenko in Programming Offtop
Quantum Harmonizer
там копейки
а что больше всего отнимает?
источник

QH

Quantum Harmonizer in Programming Offtop
Mikhail Levchenko
а что больше всего отнимает?
хз))0)0)0)))
источник

QH

Quantum Harmonizer in Programming Offtop
хотя, при построении AST должно быть немало аллокаций, так что мб и не копейки
источник

QH

Quantum Harmonizer in Programming Offtop
опыт свифта показывает, что дорого иметь одновременно выведение типов и оверлоады
источник

D

Dmitry in Programming Offtop
Я думаю там и так очень не тривиальный код, и если туда напихать параллельности и локов, то будет вообще неподдерживаемо и оверхед от локов.
источник

D

Dmitry in Programming Offtop
Quantum Harmonizer
опыт свифта показывает, что дорого иметь одновременно выведение типов и оверлоады
Что такое оверлоады?
источник

QH

Quantum Harmonizer in Programming Offtop
Dmitry
Что такое оверлоады?
разные методы с одинаковыми именами
источник

ML

Mikhail Levchenko in Programming Offtop
Dmitry
Я думаю там и так очень не тривиальный код, и если туда напихать параллельности и локов, то будет вообще неподдерживаемо и оверхед от локов.
а кто сказал что параллельность == локи?
источник

D

Dmitry in Programming Offtop
Quantum Harmonizer
разные методы с одинаковыми именами
Типа параметрический полиморфизм?
источник

ML

Mikhail Levchenko in Programming Offtop
высокоуровневые примитивы запрещены?
источник

D

Dmitry in Programming Offtop
Mikhail Levchenko
а кто сказал что параллельность == локи?
Практика. Просто так большой кусок логики запараллелить без локов - это еще в 10 раз усложнить комплексити. Если там конечно естественной параллелизации нет.
источник

VP

Vladimir Petrakovich in Programming Offtop
Quantum Harmonizer
казалось бы, разработчики котлина могли б взять да порвать их на этом поле
Возможно, он бы жрал память как не в себя
источник

ДЛ

Даниил Левицкий... in Programming Offtop
Dmitry
В андроид проекте что-то параллелится только для разных модулей, если есть один толстый модуль - он практически в 1 поток собирается. Это видно визуально, если открыть мониторинг цпу во время сборки...
источник