добрый день
на «subj-е» время сборки пустого проекта с одной кнопкой проходит крайне долго
исходники/проект находится на ram-disk-e
проверял в vbox-е на других «основных» дистрибьютивах, так-же замечено, что на х64 собирается значительно медленнее, но не так сильно, прим. 1-2 сек (из lazarus-gui)
так-же просил сделать тестовый замер у боевых программеров, аналогично, те-же результаты 1.8-2 сек
-------------------------------------------------
os/ver arch time/sec
-------------------------------------------------
slackware 12.2 x32 - gui 0.1 - 0.6
slackware 14.2 x64 - gui 9.0 - 10.0 <-- subj
slackware 14.2 x64 - cli 8.0 - 15.0
etc/more/vbox x32 - gui 0.5 - 1.0
etc/more/vbox x64 - gui 1.0 - 2.0
ubuntu x64 - gui 1.8 - 2.0
-------------------------------------------------
основные мысли
1. видна тенденция, что на х64 - сборка проходит дольше
2. в «основных» дистрибьютивах разница не значительная: 1-2 сек на х64, почти мгновенно на х32
3. сборка из ком.строки почему-то занимает больше времени, чем из гуев
4. без претензий на то, что повторная сборка тоже почти мгновенная итд итп...(кто-же спорит)
5. огромная разница между х32/64 замечена только на slackware
вот, последний пункт и вызывает больше всего непонимания (собственно, о ней и речь)
при всем, при том, что sl14.2_x64 даже без замеров, на глаз просто летает по сравнению с sl12.2_x32
(на одном железе и старом hdd)
по нек.выкусам из инета, «считается», что «это» из-за долгой линковки! тогда встречный вопрос, почему на старой х32-слаке сборка мгновенная?! :o)
набег на гугль особенно не помог, патчей на fpc/lazarus вообщем-то нету..., сборки, естественно, SlackBuild/самопальные
(пробовал всяко-разно, по многу и с внушением... не помогло)
выхлоп/сис.логи: ни чего информативного (по моему) не содержат, во вс.случае я не нашел
используемый софт:
fpc-3.0.4
lazarus-1.8.4
lazarus-2.0.4
lazarus-2.0.6
lazarus-2.0.8
лог сборки в консоли:
build from konsole: 8-15 sec
lazbuild ./project1.lpr
-->
main$ lazbuild ./project1.lpr
Hint: (lazarus) [RunTool] "/usr/bin/fpc" "-iWTOTP"
Hint: (lazarus) [RunTool] "/usr/bin/fpc" "-va" "compilertest.pas"
Info: (lazarus) Execute Title="Compile Project, Target: project1"
Info: (lazarus) Working Directory="/dev/shm/tmp/sun/ram/prj/"
Info: (lazarus) Executable="/usr/bin/fpc"
Info: (lazarus) Param[0]="-MObjFPC"
Info: (lazarus) Param[1]="-Scghi"
Info: (lazarus) Param[2]="-Cg"
Info: (lazarus) Param[3]="-O1"
Info: (lazarus) Param[4]="-g"
Info: (lazarus) Param[5]="-gl"
Info: (lazarus) Param[6]="-l"
Info: (lazarus) Param[7]="-vewnhibq"
Info: (lazarus) Param[8]="-Fi/dev/shm/tmp/sun/ram/prj/lib/x86_64-linux"
Info: (lazarus) Param[9]="-Fu/opt/lazarus-2.0.8/share/lazarus/lcl/units/x86_64-linux/gtk2"
Info: (lazarus) Param[10]="-Fu/opt/lazarus-2.0.8/share/lazarus/lcl/units/x86_64-linux"
Info: (lazarus) Param[11]="-Fu/opt/lazarus-2.0.8/share/lazarus/components/lazutils/lib/x86_64-linux"
Info: (lazarus) Param[12]="-Fu/opt/lazarus-2.0.8/share/lazarus/packager/units/x86_64-linux"
Info: (lazarus) Param[13]="-Fu/dev/shm/tmp/sun/ram/prj/"
Info: (lazarus) Param[14]="-FU/dev/shm/tmp/sun/ram/prj/lib/x86_64-linux/"
Info: (lazarus) Param[15]="-FE/dev/shm/tmp/sun/ram/prj/"
Info: (lazarus) Param[16]="-o/dev/shm/tmp/sun/ram/prj/project1"
Info: (lazarus) Param[17]="-dLCL"
Info: (lazarus) Param[18]="-dLCLgtk2"
Info: (lazarus) Param[19]="project1.lpr"
Hint: (11030) Start of reading config file /etc/fpc.cfg
Hint: (11031) End of reading config file /etc/fpc.cfg
Free Pascal Compiler version 3.0.4 [2020/06/09] for x86_64
Copyright (c) 1993-2017 by Florian Klaempfl and others
(1002) Target OS: Linux for x86-64
(3104) Compiling project1.lpr
(3104) Compiling unit1.pas
/dev/shm/tmp/sun/ram/prj/unit1.pas(16,28) Hint: (5024) Parameter "Sender" not used
(9022) Compiling resource /dev/shm/tmp/sun/ram/prj/lib/x86_64-linux/project1.or
(9015) Linking /dev/shm/tmp/sun/ram/prj/project1
/usr/bin/ld: warning: /dev/shm/tmp/sun/ram/prj/link.res contains output sections; did you forget -T?
//
// основная задержка.
//
(1008) 60 lines compiled, 8.6 sec
(1022) 3 hint(s) issued
хотелось-бы ускорить процесс сборки хотя-бы до «средне-статистических» х64 :o)
высказываемся, тыкаем носом, посылаем по ссылкам, набрасываем на вентилятор, кидаемся чепчиками, меряемся резьбой итд... :о)
спасибо
p.s. после некоторого «набега» подозреваю что это «общеизвестная» трабла : старая nvidia-карта / дрова + современный линух/ядра"
nvidia gts250
nvidia_340.108 krn/drv
kernel 4.4.217
### UPDATE ###
протестировал на vbox-е
sl14.1 x32 - 1-2 sec
sl14.2 x32 - 1-2 sec
sl14.2 x64 - 12-13 sec
«все время» уходит на линковку (и, по моему, результаты вполне показательны?!)
проблема именно в skackware и именно в архитектуре x64 (так, что nvidia с дрово-ядами, вероятно, отпадает)
### UPDATE ###
после сборки из карент-ветки тормоза, вроде как поутихли
binutils 2.26 -> 2.33.1
oprofile 1.1.0 -> 1.3.0
встречный вопрос: как корректно и правильно можно обновить эти пакеты? сдается мне что вообще нельзя!
###!!! UPDATE !!!###
rebuild this pack/patches - Lazarus build is OK
binutils ( 2.26.1-1ubuntu1~16.04.8 )
https://packages.ubuntu.com/ru/source/xenial-updates/binutils