Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиПоискОблакоComboВсе проекты

От чего зависит скорость сборки программ в таких системах на ядре Линукс, как Gentoo, Slackware?

Tigran Tamazyan Гуру (2937), закрыт 1 месяц назад
Что решает? Скорость Интернета, производительность процессора, видеокарты, оперативка? Допустим, стоит SSD, причём неплохой.
Дополнен 1 месяц назад
Зависит ли сборка программ от Интернета?
Лучший ответ
Mr.Michael Мыслитель (9611) 1 месяц назад
-- "Скорость Интернета": ну, естественно, что получишь пакеты по скорости зеркала.
-- "Производительность процессора": да, количество ядер. Вот пример конфига /etc/makepkg.conf, где Опция MAKEFLAGS используется для дополнительной настройки процесса сборки. Владельцы многоядерных или многопроцессорных систем могут определить количество одновременных потоков компиляции.
#########################################################################
# ARCHITECTURE, COMPILE FLAGS
#########################################################################
#
CARCH="x86_64"
CHOST="x86_64-pc-linux-gnu"

#-- Compiler and Linker Flags
#CPPFLAGS=""
CFLAGS="-march=native -mtune=native -O3 -ffast-math -pipe -flto -fexceptions \
-Wp,-D_FORTIFY_SOURCE=2,-D_GLIBCXX_ASSERTIONS \
-Wformat -Werror=format-security \
-fstack-clash-protection -fcf-protection"
CXXFLAGS="$CFLAGS"
LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
#RUSTFLAGS="-C opt-level=2"
#-- Make Flags: change this for DistCC/SMP systems
#MAKEFLAGS="-j2"
MAKEFLAGS="-j$(nproc)"
#-- Debugging flags
DEBUG_CFLAGS="-g -fvar-tracking-assignments"
DEBUG_CXXFLAGS="-g -fvar-tracking-assignments"
#DEBUG_RUSTFLAGS="-C debuginfo=2"
############################################################
-- "Стоит SSD, причём неплохой": кашу маслом не испортишь
Tigran TamazyanГуру (2937) 1 месяц назад
Просто я по описанию слышал, что те дистрибутивы, которые построены на компиляции исходников программ, что одна программа может часами компилироваться. Вот и пытаюсь понять корни этих слухов. Поэтому хотел задать 2 уточняющих вопроса, чтобы лучше понять Вас:

1) Как Вы думаете, такие ситуации присущи людям со слабым железом или владельцам производительных ПК (SSD, современный 6-ядерный процессор, 12 поточный, предпоследней архитектуры, оперативка с заделом на будущее) это тоже может светить?
Tigran TamazyanГуру (2937) 1 месяц назад
2) Вы говорили про зависимость от скорости зеркала. Я не совсем понял механизм работы с такими дистрибутивами упрощённо. Т. е. я скачиваю откуда-то, допустим, с официального сайта какой-нибудь программы, исходный код программы, либо какой-то файл, на основе которого нужно сделать компиляцию, и затем мощностями своего ПК его обрабатываю или в процессе уже компилляции скачанного файла/исходного кода (не знаю, в каком виде, ни разу не работал) всё равно дистрибутивы подобного класса обращаются к облачным библиотекам для компиляции?

Перефразирую. Интернет на каком этапе нужен, только для скачивания того, на основе чего компилируем, или на этапе компилляции он тоже нужен и скорость компилляции будет урезаться скоростью Интернета при хорошем железе? Какой из 2 сценариев?
Tigran TamazyanГуру (2937) 1 месяц назад
3) Появился по ходу дела вопрос. Этот пример конфигурационного файла - это с какого дистрибутива: Генты, Слаки или другого дистрибутива подобного класса?
Mr.Michael Мыслитель (9611) 1. Программа программе рознь. Разное время сборки. Однако, шустрый комп шустрее работает. 2. Только для скачивания того, на основе чего компилируем. (исходники). Для компиляции не надо. 3. Arch Linux (конкретно Arco Linux, не суть)
Остальные ответы
Люба Михайленко Профи (641) 1 месяц назад
Ссд
Tigran TamazyanГуру (2937) 1 месяц назад
Т. е. инструменты для сборки пакетов не зависят от Интернета? Я правильно понял?
Люба Михайленко Профи (641) Tigran Tamazyan, я не пойму что ты несешь
[vs] Просветленный (36119) 1 месяц назад
Больше всего зависит от производительности одного процессорного ядра. Компиляция - однопоточный процесс.
Михаил КоролёвМудрец (10644) 1 месяц назад
Ну сборка из исходников может параллелиться легко, так как обычно это много файлов, каждый из которых компилируется отдельно.
MIXPAPA Просветленный (43955) Михаил Королёв, поддерживаю.
Михаил Королёв Мудрец (10644) 1 месяц назад
Сборка и скачивание из интернета - два разных процесса. При нормальном интернете на сборку будет больше времени обычно тратиться - и зависит от мощности процессора обычно скорость сборки и от настройки ccache, также tmp в оперативную память переносят для ускорения сборки.
Tigran TamazyanГуру (2937) 1 месяц назад
Не совсем понял "При нормальном интернете на сборку будет больше времени обычно тратиться"? Т. е. хорошая скорость Интернета продлевает время сборки, не совсем понял?
MIXPAPA Просветленный (43955) 1 месяц назад
Собираются программы у тебя или на удаленной машине? Зачастую от скорости сети не зависят, кроме выше описанного случая.
Основное в сборке это процессор системная шина и дисковая подсистема.
Tigran TamazyanГуру (2937) 1 месяц назад
К сожалению, я не в курсе, у меня или на удалённой машине, пока ещё считаю себя недостаточно созревшим для использования дистрибутивов, где всё под себя нужно собирать, но в будущем не исключаю выбор одного из подобных дистрибутивов подобной концепции.
Поэтому, если в курсе, подскажите, на таких дистрибутивах на удалённой машине собирается или используются мощности ПК, на котором сам дистрибутив стоит. Если подскажете, буду благодарен. Интересуют, в первую очередь, Slackware и Gentoo.
MIXPAPA Просветленный (43955) Tigran Tamazyan, я немного не так вас понял. У вас все собирается локально на локальной машине.
MsWakeUp ml Просветленный (23220) 1 месяц назад
где сборка программ где интернет....
Yuri . Ученик (238) 1 месяц назад
Скорость интернета
Похожие вопросы