Форум » GUI » Как ускорить время сборки проекта ? » Ответить

Как ускорить время сборки проекта ?

Andrey: Есть большой проект (170 файлов, 5 мб исходников), сборка занимает 1,5-2 минуты. Надоело пялиться в черный экран при сборке... Как можно ускорить время сборки проекта ? Последний МиниГуи+BCC 5.51 Уже замучился делать небольшие проекты, а потом собирать всё в один большой. Под терминалкой время сборки вообще было незаметно.

Ответов - 11

Dima: инкрементальная сборка

Andrey: Dima пишет: инкрементальная сборка У меня есть такой ключ: # incremental-compilation mode -inc

Dima: Что за винт в компе стоит и сколько ему лет ? Andrey пишет: Надоело пялиться в черный экран при сборке... Не пялься , займись чем то другим

Andrey: Dima пишет: Что за винт в компе стоит и сколько ему лет ? Винту года 4. Я для теста передвинул МиниГуи, BCC и проект на SSD диск, отключил антивирусник. Все равно время сборки 1,5-2 минуты. Отдельный проект из 10-15 файлов собирается за 20-30 сек. Это сейчас 2017 год и связка МиниГуи+BCC собирается как 20-25 лет тому назад Клипер .... Эдак лет 10-надцать назад, клипер тоже медленно собирался по 5-15 минут. Но там линковщики были старыми и Tlink'ом тоже пользовался, он быстрей собирал. В то время самый шустрый сборщик был Blinker, собирал сек. за 30. Чума-линковщик. Может заменить линковщик в проекте на Blinker ? Кто менял в *.hbp линковщик ? И как это сделать ? Dima пишет: Не пялься , займись чем то другим Заменил координату, цвета (и т.д.) и опять пере-собирать проект. Чем можно заняться в это время ? Если кто-то может, то я не могу, все мысли в проекте. Вот мой файл-проект. Может что неправильно, подскажите пожалуйста. [pre2]# Если нужно, можно создать *.ppo при компиляции #-prgflag=-p # Проверка при компиляции (неисп.переменные) #-prgflag=-w2 -es2 # Включить multi/single-thread Harbour VM -mt # the version number of the assembly .exe file #-vcshead=DemoVersion #-tshead=DemoVersDate # incremental-compilation mode -inc # folder where are all *.o b j -workdir=OBJ # name EXE-module -oA4win.exe # включить путь к своим *.ch и *.fmg -incpath=Include -incpath=Source # list all *.prg Source\main.prg и так 170 файлов..... # project Resources A4win.rc и так 12 файлов..... # paths to the main and extension *.Lib -lminigui -lrddleto -lprocinfo -lhbole -lxhb -lhbwin #-lversion #-lmsvfw32 #-lcalldll [/pre2]

Dima: Andrey пишет: Чем можно заняться в это время ? Разомнись например , плечи , руки , шея , позвоночник . Andrey пишет: Винту года 4 Что за винт ? Марка (модель)

Pasha: Может заменить линковщик в проекте на Blinker ? Кто менял в *.hbp линковщик ? И как это сделать ? blinker создает только 16-разрядные приложения, dos и win16 Кстати, на что приходится основное время сборки ? На компиляцию или линковку ? И еще. Андрей, то ли еще будет. Вот прекратится поддержка bcc, и придется переползать на другой компилятор, к примеру, mingw. А там время сборки будет в несколько раз больше. Так что цени, что есть. Ну или купи суперкомпьютер :)

Andrey: Pasha пишет: Кстати, на что приходится основное время сборки ? На компиляцию или линковку ? Время тратиться на линковку (думаю так). Проект уже собран, изменяю один модуль - время компиляции наверно неущественное. Я думаю пока tlink соберёт отдельные obj - вот время и проходит много. Пробовал в других проектах использовать уже собранную свою dll - время на сборку меньше тратиться. Винт использую сейчас SSD. Марку не помню. Года 2 назад гонял тесты, шустрый. Система - Винда на нём стоит. Минигуи и BCC тоже переставил на него. Ускорение сборки между SSD и обычным HDD визуально особо не отличаются. Pasha пишет: Ну или купи суперкомпьютер :) Денег на него - нет...

Pasha: Если узкое место - линковка быстрым (а tlink именно быстрый) линкером 170 файлов obj, то как вариант - это уменьшить количество модулей. 5M/170 ~ 30k - средний размер модуля, получается как-то мелковато. Можно перепроектировать проект - объединить несколько модулей в один.

SergKis: Можно попробовать модули получать в hrb и собирать их в ресурсы dll или в основной модуль. Это несколько меняет подход к проекту, но плюсы есть

PSP: Имхо, Паша правильно написал, - просто много файлов.

alkresin: SergKis пишет: Можно попробовать модули получать в hrb Очень хорошая идея, кстати. Тогда перелинковка может вообще не понадобиться - в тех случаях, когда изменялись только те модули, которые компилируются в hrb. И в пакет обновления можно будет включать только измененные hrb. Кроме того, если удачно скомпоновать модули, многие из них можно будет подгружать не при старте программы, а только по мере необходимости.



полная версия страницы