Lazarus/fpc медленная сборка на slackware-14.2 x64

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Lazarus/fpc медленная сборка на slackware-14.2 x64

Сообщение sunjob » 11.06.2020 08:33:59

добрый день

на "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)
все понять можно, но только не !!! 9-10 секунд на пустом проекте, находящемся на RAM-DISK-e !!!

высказываемся, тыкаем носом, посылаем по ссылкам, набрасываем на вентилятор, кидаемся чепчиками, меряемся резьбой итд... :о)

спасибо
Последний раз редактировалось sunjob 13.06.2020 17:53:06, всего редактировалось 3 раз(а).
Аватара пользователя
sunjob
новенький
 
Сообщения: 41
Зарегистрирован: 12.01.2011 15:19:54

Re: Lazarus/fpc медленная сборка на slackware-14.2 x64

Сообщение Vadim » 11.06.2020 13:21:08

sunjob
А на предыдущей Слаке была такая же проблема?
Vadim
долгожитель
 
Сообщения: 3912
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Lazarus/fpc медленная сборка на slackware-14.2 x64

Сообщение sunjob » 11.06.2020 16:27:38

в сводной таблице-же видно, что на старой слаке все зашибись, собирается практически мгновенно :D

зы, вот уточнение по тормозам

Код: Выделить всё
...
[2.570] (9017) Using util /usr/bin/ld
/usr/bin/ld: warning: /dev/shm/tmp/sun/ram/prj/link.res contains output sections; did you forget -T?
[2.570] Executing "/usr/bin/ld" with command line "-b elf64-x86-64 -m elf_x86_64  --dynamic-linker=/lib64/ld-linux-x86-64.so.2    -L. -o /dev/shm/tmp/sun/ram/prj/project1 /dev/shm/tmp/sun/ram/prj/link.res"
[11.711] (1008) 22 lines compiled, 11.7 sec
[11.711] (1022) 2 hint(s) issued
Аватара пользователя
sunjob
новенький
 
Сообщения: 41
Зарегистрирован: 12.01.2011 15:19:54

Re: Lazarus/fpc медленная сборка на slackware-14.2 x64

Сообщение Vadim » 12.06.2020 03:56:57

sunjob писал(а):в сводной таблице-же видно, что на старой слаке все зашибись, собирается практически мгновенно

Создаётся впечатление, что сами Вы упомянутой таблицы не видели... ;-) :-) К примеру я, сколько в неё ни всматриваюсь, а строки "slackware 12.2 x64" не вижу. А Вы?
Vadim
долгожитель
 
Сообщения: 3912
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Lazarus/fpc медленная сборка на slackware-14.2 x64

Сообщение sunjob » 12.06.2020 08:31:14

а должна быть?
Код: Выделить всё
-------------------------------------------------
os/ver         arch        time/sec
-------------------------------------------------
slackware 12.2 x32 - gui  0.1 -  0.6  <-- this is


что не так? :lol: или вы считаете, что sl12.2 была в версии x64 ? :lol: :lol: :lol: ... или формулируйте вопрос более точно :mrgreen:
Аватара пользователя
sunjob
новенький
 
Сообщения: 41
Зарегистрирован: 12.01.2011 15:19:54

Re: Lazarus/fpc медленная сборка на slackware-14.2 x64

Сообщение Сквозняк » 13.06.2020 16:30:45

sunjob писал(а):на старой слаке все зашибись, собирается практически мгновенно


Сборка на паскале сильно зависит от скорости чтения кучи мелких файлов. Если повторная сборка у тебя зашибись, то значит при первой файлы читаются с винта медленно, а в этом не паскаль виноват. Надо разбираться с ОС - может у тебя ФС новая, примонтирована с лишними опциями или ядро собрано с лишним функционалом.

sunjob писал(а):3. сборка из ком.строки почему-то занимает больше времени, чем из гуев


Там и набор опций обычно разный, ну и гуй обращается к куче файлов, в результате чего они кэшируются.
Сквозняк
энтузиаст
 
Сообщения: 764
Зарегистрирован: 29.06.2006 22:08:32

Re: Lazarus/fpc медленная сборка на slackware-14.2 x64

Сообщение sunjob » 13.06.2020 17:53:45

9-10 секунд на пустом проекте, находящемся на RAM-DISK-e ???
Аватара пользователя
sunjob
новенький
 
Сообщения: 41
Зарегистрирован: 12.01.2011 15:19:54

Re: Lazarus/fpc медленная сборка на slackware-14.2 x64

Сообщение SSerge » 13.06.2020 20:02:55

sunjob писал(а):9-10 секунд на пустом проекте, находящемся на RAM-DISK-e ???


Библиотеки компилятора и LCL зато не на RAM-DISKе. А именно их компилятор читает куда более интенсивнее, чем файлы "пустого проекта".
SSerge
энтузиаст
 
Сообщения: 896
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Lazarus/fpc медленная сборка на slackware-14.2 x64

Сообщение sunjob » 14.06.2020 04:35:05

считает что на старой слаке sl12.2 x32 данные с hdd читаются быстрее? :lol: или может я волшебным образом что-то так там настроил, а про новую слаку забыл...ну подзабыл что-то... и теперь она ...
даже без замеров, на глаз просто летает по сравнению с sl12.2_x32
а вот со сборкой ...тут доступ к hdd подводит...

скорость "прочих всех остальных дистрибьютивов" не превышает 1-2сек

а в "таком разрезе" наши 9-10 сек - являются нескромным показателем тормозов (согласен, хорошие тормоза это всегда зашибись... но только не в нашем случае... :D ) причем
- 1-2 сек как раз занимает сборка
- 7-8 сек линковка - основная задержка, причем в инете есть упоминание про
долгую линковку


причем линковка на RAM-DISK-e не должна занимать столько времени (но, именно она и занимает основное время, а компиляция, как и положено, укладываетс в 2-3 сек)

Код: Выделить всё
[2.570] (9017) Using util /usr/bin/ld
/usr/bin/ld: warning: /dev/shm/tmp/sun/ram/prj/link.res contains output sections; did you forget -T?
[2.570] Executing "/usr/bin/ld" with command line "-b elf64-x86-64 -m elf_x86_64  --dynamic-linker=/lib64/ld-linux-x86-64.so.2    -L. -o /dev/shm/tmp/sun/ram/prj/project1 /dev/shm/tmp/sun/ram/prj/link.res"
[11.711] (1008) 22 lines compiled, 11.7 sec
[11.711] (1022) 2 hint(s) issued

...

нет... тут что-то "слишком" ... доберусь до железок, надо будет еще на "витруалке из RAM_DISK-а" погонять ...

...

### UPDATE ###

протестировал на vbox-е
Код: Выделить всё
sl14.1 x32 -   1-2 sec
sl14.2 x32 -   1-2 sec
sl14.2 x64 - 12-13 sec


"все время" уходит на линковку (и, по моему, результаты вполне показательны?!)

проблема именно в slackware и именно в архитектуре x64

### UPDATE ###

собрал пакеты из ветки карент, обновил, теперь сборка в пределах 2-3 сек
тестировал в vbox-e
Код: Выделить всё
slackware 14.2 x64

binutils-2.26
-->
binutils-2.33.1

oprofile-1.1.0
-->
oprofile-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
Аватара пользователя
sunjob
новенький
 
Сообщения: 41
Зарегистрирован: 12.01.2011 15:19:54


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

Рейтинг@Mail.ru