LINUX.ORG.RU

Скорость компиляции

 , ,


0

1

Что больше влияет на скорость компиляции: лишнее ядро процессора или большее количество оперативной памяти? Открыл для себя нового хостера, который предлагает 2 тарифа: либо 4 ядра и 2 ГБ памяти, либо 2 ядра и 4 ГБ памяти. Хочу к нему переехать со своим Gentoo-сервером для формирования бинарных пакетов. Не могу определиться, какой из этих 2 тарифов эффективнее повлияет на скорость компиляции. Для сравнения, у моего текущего сервака 3 ядра и 2 ГБ памяти. Что лучше: лишнее ядро или убрать 1 ядро, но зато прибавить лишние 2 ГБ памяти?

★★★★★

Лучше лишнее ядро.

Исключение - сборка очень тяжелых приложений, особенно debug (с -g или -ggdb), когда может случиться ситуация, что 4 процесса gcc тебе суммарно заполнят больше, чем 2 Гб ОЗУ, система уйдет в своп (надеюсь, ты достаточно выделишь), и придется долго ждать.

Такое может случиться с пакетами Firefox, WebKit (QtWebkit, webkit-gtk, chromium), LLVM, Clang, и другими.

anonymous00 ★★ ()

смотря какие ядра - бенчи дадут реальную картину, а еще лучше тестовая сборка

anonymous ()
Ответ на: комментарий от anonymous

Вот такие:

processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 60
model name	: Intel Core Processor (Haswell)
stepping	: 1
microcode	: 0x1
cpu MHz		: 2297.338
cache size	: 4096 KB
physical id	: 0
siblings	: 1
core id		: 0
cpu cores	: 1
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm fsgsbase bmi1 avx2 smep bmi2 erms invpcid xsaveopt
bugs		:
bogomips	: 4594.67
clflush size	: 64
cache_alignment	: 64
address sizes	: 46 bits physical, 48 bits virtual
power management:

Rinaldus ★★★★★ ()
Ответ на: комментарий от anonymous00

Этот сервер у меня преимущественно для сборки тяжелых пакетов (libreoffice, webkit-gtk и др.) и предназначен.

Rinaldus ★★★★★ ()

Ты думаешь тебе на копеечной vps'ке разрешат компилить пакеты с полным предоставлением ядер и не будут резать? Шутишь? Здесь нужен дедик, иначе твои «предоставленные хостером 12 ядер» будут работать как 2 обычных.

Это проверенно лично мною на 3х хостингах, немецком, чешском и нидерландском.

slon ()

Если памяти хватает, то процессор, если нет, то память, кэп.

anonymous ()
Ответ на: комментарий от Rinaldus

С таким железом без разницы.

(libreoffice, webkit-gtk и др.) и предназначен.

То есть tmpfs не используется?

Итого получаем hdd + дохлый проц + 0 памяти? И о каком ускорении может быть речь? Тем более если это сервак - пусть собираем хоть сутки.

Проще купить нормальный десктоп и не мучатся.

RazrFalcon ★★★★★ ()
Ответ на: комментарий от slon

Я уже год так делаю на VDSке. Libreoffice к примеру собирается ~4 часа. А так как это сервак 24/7, то в моем распоряжении всегда свежие пакеты любой тяжести.

Rinaldus ★★★★★ ()
Ответ на: комментарий от Rinaldus

Сделай распределенную конпеляцию с одинаковыми флагами под все системы.

anonymous ()
Ответ на: комментарий от Rinaldus

Компилить одно и тоже на каждом компе я не хочу.

Так зачем для компиляции отдельный сервер, что мешает создать бинарный пакет на одном ПК и использовать его на других? Можно ещё distcc прикрутить.

Возможно ещё, что у тебя нет достаточно мощного ПК, но, во-первых, твой ответ построен так, что получается, что проблемой является «дублирующаяся» сборка, во-вторых, я сомневаюсь, что как-то можно жить, не имея компьютера, который как минимум эквивалентен по производительности кусочку сервера с 2 гигами ОЗУ и 3 (наверняка, весьма дохленькими) ядрами.

sudopacman ★★★★★ ()

Теоретически ОЗУ должно быть важнее, потому что тогда тонны заголовочных файлов влезут в кеш. К тому же наиболее монструозные приложения могут даже не собраться на малом объёме ОЗУ, потому что компилятору не хватит оперативки, чтобы развернуть всякие шаблоны C++ и т. д.

KivApple ★★★★★ ()
Ответ на: комментарий от Rinaldus

У меня Gentoo на 3-х компах. Компилить одно и тоже на каждом компе я не хочу.

Собирай на одном и подними репу.

devl547 ★★★★★ ()

Что ты на 2 гигах компялять собрался, лол. 1.5 гига на процесс вполне обычная картина при компилянии обычного софта, браузер и десяток гигов может с lto выжрать, ну правда только на стадии линковки. Короче суть в том что 3 из 4 «ядер» у тебя будут простаивать в лучшем случае.

anonymous ()

на скорость компиляции влияет ccache. Борьба за 1 лишнее ядро выигрыша много не даст.

former_anonymous ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.