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

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

Tigran Tamazyan Мыслитель (5662), закрыт 2 года назад
Что решает? Скорость Интернета, производительность процессора, видеокарты, оперативка? Допустим, стоит SSD, причём неплохой.
Дополнен 2 года назад
Зависит ли сборка программ от Интернета?
Лучший ответ
Mr.Michael Просветленный (20826) 2 года назад
-- "Скорость Интернета": ну, естественно, что получишь пакеты по скорости зеркала.
-- "Производительность процессора": да, количество ядер. Вот пример конфига /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Мыслитель (5662) 2 года назад
Просто я по описанию слышал, что те дистрибутивы, которые построены на компиляции исходников программ, что одна программа может часами компилироваться. Вот и пытаюсь понять корни этих слухов. Поэтому хотел задать 2 уточняющих вопроса, чтобы лучше понять Вас:

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

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