MaNGOSR2

MangosR2 is a free, open source MMORPG framework, derived from MaNGOS project


You are not connected. Please login or register

Fast compilation

View previous topic View next topic Go down  Message [Page 1 of 1]

1 Fast compilation on Wed Aug 29 2012, 15:15

KiriX


Admin
Подскажите, пожалуйста, человеку очень далёкому от линуксов, как, с помощью каких ключей, можно добиться наиболее быстрой компиляции сервера?

Anybody can help me? Please, say which keys|parametrs need use for fast compilation on linux?

My compilation lasts around 40 minutes =(

View user profile http://aetherius.ru

2 Re: Fast compilation on Wed Aug 29 2012, 16:21

rsa


Admin
только DPCH=1 и убрать все дебаг-ключи. еще можно к запуску make добавить ключик -jN (где N число ядер процессора)

View user profile

3 Re: Fast compilation on Wed Aug 29 2012, 16:29

KiriX


Admin
rsa wrote:только DPCH=1 и убрать все дебаг-ключи. еще можно к запуску make добавить ключик -jN (где N число ядер процессора)
Насколько я начитался - -jN (N - число ядер процессора + 1)

Дебаг ключи... Я убрал вообще всё, что указано в файле в исходниках
Code:
#!/bin/sh
PREFIX=${PWD}/bin
CONF_OPTS+="-DPCH=1 "
CONF_OPTS+="-DDEBUG=1 "
CONF_OPTS+="-DACE_USE_EXTERNAL=1 "
CONF_OPTS+="-DUSE_STD_MALLOC=1 "
#CONF_OPTS+="-DUSE_TBB_MALLOC=1"

CFLAGS="-march=native -O2 -DNDEBUG"
#CFLAGS="-O1 -fno-inline"
CFLAGS+=" -pipe -ggdb -fno-strict-aliasing -fno-delete-null-pointer-checks -D_LARGEFILE_SOURCE"
CXXFLAGS="${CFLAGS}"

rm -Rf build &&
mkdir build &&
cd build &&

cmake .. ${CONF_OPTS} \
    -DPREFIX="${PREFIX}" \
    -DCMAKE_C_FLAGS="${CFLAGS}" \
    -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
    -DCMAKE_C_COMPILER="gcc" \
    -DCMAKE_CXX_COMPILER="g++"
Что здесь убрать??? Точно за дебаг отвечает -ggdb.
У меня вообще ВСЁ убрано и даже -DDEBUG=0. Думаю, может что-то убирать всё же не следовало =)
И ещё меня удивляет, что на wiki ключи другие указаны и их намного больше:
Code:
cmake -DACE_USE_EXTERNAL=1 -DUSE_STD_MALLOC=1 -DSYSCONFDIR=~/etc -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS_RELEASE:STRING="-march=native -O2 -ggdb -pipe -frename-registers -fno-strict-aliasing -fno-strength-reduce -fno-delete-null-pointer-checks -ffast-math" -DCMAKE_CXX_FLAGS_RELEASE:STRING="-march=native -O2 -ggdb -pipe -frename-registers -fno-strict-aliasing -fno-strength-reduce -fno-delete-null-pointer-checks -ffast-math" -DPREFIX=/usr/local -DPCH=1 ..

Я вообще теряюсь что нужно, а что нет =(

P.S: Я честно пытался найти значение каждого из ключей, но не смог =(((

View user profile http://aetherius.ru

4 Re: Fast compilation on Wed Aug 29 2012, 16:37

rsa


Admin
взять конфиг из вики убрав -ffast-math. хотя там не фиг-то и разница... описание читается в манах :)

View user profile

5 Re: Fast compilation on Wed Aug 29 2012, 16:39

2 minutes 36 seconds takes me compilations without precompiled headers. Mentioned config + 2 BiXeon processors with 6 cores. 2x6x2 = 24 threads.

As better processor, faster compilations.

View user profile

6 Re: Fast compilation on Wed Aug 29 2012, 16:52

KiriX


Admin
-ffast-math и -ggdb убирать, значит?
А вот это -D_LARGEFILE_SOURCE нужно или нет?

Понятно, что чем мощнее комп, тем лучше... Но мне важна скорость компила для проверки всяких там исправлений. Быстренько скомпилил и проверил, что ты там наваял...

Студия всё-таки рулит, если в ней пишешь код она сразу ошибочки показывает. А как люди без студии в линуксах обходятся??? Не в текстовом же редакторе код пишут...

И ещё сразу вопрос линуксоидам, а как накатываются скули на базу, после обновления исходников и компила? Знаю, что всё можно батниками сделать, но представляю как это можно указать, чтобы только нужные файлы заливались...

P.S: Просто я помню, что он у меня на виртуалке как-то минут за 5 компилился...

View user profile http://aetherius.ru

7 Re: Fast compilation on Wed Aug 29 2012, 17:09

rsa


Admin
KiriX wrote:-ffast-math и -ggdb убирать, значит?
А вот это -D_LARGEFILE_SOURCE нужно или нет?

Понятно, что чем мощнее комп, тем лучше... Но мне важна скорость компила для проверки всяких там исправлений. Быстренько скомпилил и проверил, что ты там наваял...

Студия всё-таки рулит, если в ней пишешь код она сразу ошибочки показывает. А как люди без студии в линуксах обходятся??? Не в текстовом же редакторе код пишут...

И ещё сразу вопрос линуксоидам, а как накатываются скули на базу, после обновления исходников и компила? Знаю, что всё можно батниками сделать, но представляю как это можно указать, чтобы только нужные файлы заливались...
gdb не надо, он время компила не жрет. студия, извиняюсь, отс...вает у эклипса теперь уже навсегда - эклипс писали кодеры для себя, а студию - мелкософту за бабки. хотя я писал и буду писать в vi - куда удобнее, но учиться долго.

скули накатываются скриптом auto_update из репо р2. один раз настроил и пускай при рестарте сервера...

View user profile

8 Re: Fast compilation on Wed Aug 29 2012, 17:27

KiriX


Admin
ААА! Совсем забыл, что они (скрипты) есть! =)
Пилять, опять отличия =)
В скриптах опять другие ключи =)
Code:
    -DCMAKE_C_FLAGS_RELEASE:STRING="-march=native -O2 -ggdb -pipe -D_LARGEFILE_SOURCE -frename-registers -fno-strict-aliasing -fno-strength-reduce -fno-delete-null-pointer-checks -ffast-math -finput-charset=utf-8 -fexec-charset=utf-8" \
    -DCMAKE_CXX_FLAGS_RELEASE:STRING="-march=native -O2 -ggdb -pipe -D_LARGEFILE_SOURCE -frename-registers -fno-strict-aliasing -fno-strength-reduce -fno-delete-null-pointer-checks -ffast-math -finput-charset=utf-8 -fexec-charset=utf-8" \
А скрипты-то хорошие... Надо будет заюзать =)
Вот только неудобно, что авторестартер не в screen - я уже привык: запустил и забл, если надо - глянул что там =)
И ещё можно было бы в скрипт компила добавить автовыключение сервера после компиляции и только потом установка.

Эклипс, это и есть, как я понимаю, аналог студии для линукса?
Просто я если что простенькое сейчас правлю - так в блокноте, а если что серьёзнее - в студии и потом патч накатываю =)

View user profile http://aetherius.ru

9 Re: Fast compilation on Wed Aug 29 2012, 21:14

KiriX wrote:-ffast-math и -ggdb убирать, значит?
А вот это -D_LARGEFILE_SOURCE нужно или нет?

Понятно, что чем мощнее комп, тем лучше... Но мне важна скорость компила для проверки всяких там исправлений. Быстренько скомпилил и проверил, что ты там наваял...

Студия всё-таки рулит, если в ней пишешь код она сразу ошибочки показывает. А как люди без студии в линуксах обходятся??? Не в текстовом же редакторе код пишут...

И ещё сразу вопрос линуксоидам, а как накатываются скули на базу, после обновления исходников и компила? Знаю, что всё можно батниками сделать, но представляю как это можно указать, чтобы только нужные файлы заливались...

P.S: Просто я помню, что он у меня на виртуалке как-то минут за 5 компилился...

Давольно не плохо пишется в Qt Creator. Он дружит со смейком и сразу создаёт проект при открытии CMakeList.txt, да и по гиту в нём что-то есть, но не пользуюсь.

Undergarun wrote:2 minutes 36 seconds takes me compilations without precompiled headers. Mentioned config + 2 BiXeon processors with 6 cores. 2x6x2 = 24 threads.

As better processor, faster compilations.

Oo :) cool

View user profile

10 Re: Fast compilation on Thu Aug 30 2012, 05:17

KiriX


Admin
Спасибо за советы с компиляторами =) А-то если полностью от винды отходить без студии как-то печально =)
Что же касается компиляции - с любыми ключами время компила только увеличилось - уже до 1 часа... Вообще тоска =(
Intel E6550 2.33x2, 8Гб оперы, Ubuntu 12.04 x64 1 час или 40 минут - явно слишком много для этой системы. VS на более слабой машине собирает раза в 2 быстрее...
Так что вообще не знаю в чём дело и как быть =(

View user profile http://aetherius.ru

11 Re: Fast compilation on Thu Aug 30 2012, 09:38

rsa


Admin
KiriX wrote:Спасибо за советы с компиляторами =) А-то если полностью от винды отходить без студии как-то печально =)
Что же касается компиляции - с любыми ключами время компила только увеличилось - уже до 1 часа... Вообще тоска =(
Intel E6550 2.33x2, 8Гб оперы, Ubuntu 12.04 x64 1 час или 40 минут - явно слишком много для этой системы. VS на более слабой машине собирает раза в 2 быстрее...
Так что вообще не знаю в чём дело и как быть =(
не забываем, что cmake надо запускать строго 1 раз на каждое обновление исходников (да и то если файлы поменялись), дальше только make -jN. Проверьте наличие DPCH=1 и собранного внешнего ACE. у меня на VDS (1gb/1ghz*2) собирается с нуля за меньше чем полчаса, рекомпилы (если хедеры не тронуты) - вообще секунды.

View user profile

12 Re: Fast compilation on Thu Aug 30 2012, 10:11

KiriX


Admin
rsa wrote:не забываем, что cmake надо запускать строго 1 раз на каждое обновление исходников (да и то если файлы поменялись), дальше только make -jN. Проверьте наличие DPCH=1 и собранного внешнего ACE. у меня на VDS (1gb/1ghz*2) собирается с нуля за меньше чем полчаса, рекомпилы (если хедеры не тронуты) - вообще секунды.
cmake надо перезапускать если файлы добавились, а не поменялись. Если просто поменялись - компилятор сам изменения увидит, насколько я знаю.
DPCH=1 - это в конфиге установлено. А что-то ещё нужно проверить? Чтобы что-то было установлено???
ACE по конфигу установлено, что юзать внешний. Собранный, это где проверить?
Попробую в след раз всю компиляцию в лог вывести...

P.S: Уже ставлю на работе на виртуалку дебиан, чтобы мучить и тестить =)

P.P.S: Описание части параметров/ключей нашёл в man gcc. Большую часть не понял где искать, в мане по cmake их нет, а где ещё можно? Например, -D_LARGEFILE_SOURCE =(

View user profile http://aetherius.ru

13 Re: Fast compilation on Thu Aug 30 2012, 11:32

KiriX


Admin
ВОТ Я БАРАНИЩЕ ТУПОЙ!!!
No PCH for your system possible but PCH was set to 1. Resetting it.
Точно! Неправильно определяется же, недавно кто-то чинил это толи в триньке, толи в мангосе... Факт, где-то я видел фикс, чтобы правильно определялось использование PCH...

View user profile http://aetherius.ru

14 Re: Fast compilation on Thu Aug 30 2012, 11:36

rsa


Admin
KiriX wrote:ВОТ Я БАРАНИЩЕ ТУПОЙ!!!
No PCH for your system possible but PCH was set to 1. Resetting it.
Точно! Неправильно определяется же, недавно кто-то чинил это толи в триньке, толи в мангосе... Факт, где-то я видел фикс, чтобы правильно определялось использование PCH...
что-т я такого ни разу не видел... проверьте что гнусь 4.7+, на 4.3 может вообще не скомпилиться... короче, обновите весь дистр до современного состояния.

View user profile

15 Re: Fast compilation on Thu Aug 30 2012, 12:31

KiriX


Admin
gcc 4.6 Новее для убунты из репозиториев просто нет.
Версию так и кажет:
/usr/bin/c++ -dumpversion 4.6
/usr/bin/g++ -dumpversion 4.6
А в проверке должно быть 3 цифры с двумя точками.

Исправил, собралось за 11 минут =)

View user profile http://aetherius.ru

16 Re: Fast compilation on Tue Nov 20 2012, 12:34

KiriX


Admin
Обновилась Ubuntu до 12.10 С ней обновился компилятор до 4.7.2
А скрипт Cmake по прежнему не включает PCH, приходится его проверки компилятора обходить и выставлять PCH насильно =(

View user profile http://aetherius.ru

17 Re: Fast compilation Today at 21:13

Sponsored content


View previous topic View next topic Back to top  Message [Page 1 of 1]

Permissions in this forum:
You cannot reply to topics in this forum