169 похожих чатов

Всем привет, подскажите куда стучаться в официальные ресурсы поддержки JB? Вопросы

по kt компилятору и билд тулзам

19 ответов

8 просмотров

kotl.in/issue

Глеб-Никитенко Автор вопроса
Alexander Nozik
kotl.in/issue

спасибо, обращусь туда

Глеб-Никитенко Автор вопроса
Alexander Nozik
kotl.in/issue

Александр, может есть к кому обратиться по моей проблеме? чтобы найти какое-то решение. Тикет в issues - выглядит как "крик в пустоту"

Глеб Никитенко
Александр, может есть к кому обратиться по моей пр...

Если задача ускорить конкретно ваш билд, то тикет - это самое оно место. Если это абстрактное "почему у вас не параллельно" - это именно что крик в пустоту. Сборка разных модулей совершенно точно параллельна, вам выше показывали. А в рамках одного соурс сета далеко не все операции можно параллелизовать. Попробуйте еще kotlin.parallel.tasks.in.project=true, но на андроиде может что-то отвалиться

Глеб Никитенко
Александр, может есть к кому обратиться по моей пр...

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

Глеб-Никитенко Автор вопроса
Alexander Nozik
Если задача ускорить конкретно ваш билд, то тикет ...

флаг попробую, спасибо. Правильно ли я понимаю - в идеальном мире в абсолюте для максимального использования железа я должен каждый сорс файл держать в отдельном модуле? Выглядит, как то, что я за компилятор должен производить работу по распараллеливанию. С другой стороны физически - разницы же нет - границы папок или границы модулей. Это не к вам конечно претензии)) но к текущей реализации тулинга. Грустно - потратив тонну денег на топовое оборудование наблюдать медленные сборки и 1% использования железа. Буду стучаться в JB, спасибо ребят.

Глеб Никитенко
флаг попробую, спасибо. Правильно ли я понимаю - ...

В Java можно компилировать файлы параллельно, правда далеко не все это могут. Но в котлин из-за инлайнов это далеко не всегда возможно. Я, честно говоря, совершенно не в курсе, как оно там внутри устроено, может @ilmirus скажет. Но если вам надо выжать максимум, да режьте на модули, не по файлу, но по идейной структуре. Они компилируются параллельно. Ну и наконец вопрос, о каких временах идет речь? Если это масштаб минуты с чистого старта, то вы занимаетесь ерундой.

Глеб-Никитенко Автор вопроса
Alexander Nozik
В Java можно компилировать файлы параллельно, прав...

нет. 12 минут холодного билда при чем 12 мин на 8 ядерном core-i7 ноутбуке. и столько же на 14 ядерном core-i9 с топовым серверным ssd стационарного ПК

Глеб Никитенко
нет. 12 минут холодного билда при чем 12 мин на 8 ...

Ну тогда пилите свой монолит как минимум на 4 части и будет счастье. Потомки скажут вам спасибо.

Глеб-Никитенко Автор вопроса
Alexander Nozik
Ну тогда пилите свой монолит как минимум на 4 част...

у нас в рабочем проекте под 50 модулей, ну конечно есть дисбаланс в сторону одного app(он наиболее жирный). И вот... не помогает

Глеб Никитенко
у нас в рабочем проекте под 50 модулей, ну конечно...

Ну если у вас там миллион строк, то тут особо ничего не поделаешь. Я могу сказать, что в моих проектах на порядка 20-30k. Компиляция с холодного старта около минуты - двух, из которой большая часть - это тормозной JS, а инкрементальная сборка почти мгновенная.

Глеб Никитенко
у нас в рабочем проекте под 50 модулей, ну конечно...

Так посмотрите что там занимает основное время. Откуда уверенность, что именно компиляция Kotlin виновата?

Глеб-Никитенко Автор вопроса
Alexander Nozik
Ну если у вас там миллион строк, то тут особо ниче...

не. у нас большой, млн думаю точно.... не замерял...но...очень большой в смысле - совсем не пет проект.

Vladimir Sitnikov
Так посмотрите что там занимает основное время. От...

Он выше писал, что по билд скану. Но скорее всего действительно так

Глеб Никитенко
не. у нас большой, млн думаю точно.... не замерял...

Хорошо, 12 минут с холодного старта, а инкрементальный сколько?

Глеб-Никитенко Автор вопроса
Vladimir Sitnikov
Так посмотрите что там занимает основное время. От...

1. Gradle build analyzer - явно указывает 2.. Это хорошо видно в реальном времени в процессе сборки

Глеб-Никитенко Автор вопроса
Alexander Nozik
Хорошо, 12 минут с холодного старта, а инкрементал...

Инкрементальную пристально не замерял на новом железе, скорее всего. Всё как и на старом... Зависит от места изменений. Расчёт конечно был на то что проблема решается железом а не структурой проекта. Я к сожалению не могу на неё влиять ... у нас по 100 андроид разработчиков

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

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
DS
8
Карта сайта