Оптимизация процесса компиляции мира

В этой статье я расскажу как можно ускорить процесс сборки мира. Ведь на самом деле не все задумываются об этом, что есть ли возможность отключить сборку некоторых ненужных программ в системе. Дак вот, такая возможность есть, далее я расскажу как ею воспользоваться.

Параметрами сборки всего, что можно скомпилить с помощью команды make в системе, будь это ядро, мир или порты управляют с помощью файла /etc/make.conf. Все возможные параметры я описывать не буду, а опишу всего лишь тот, который мне пригодился. Этот параметр CPUTYPE. Возможные значения:

  • Процессоры с архитектурой x86:
    • AMD: opteron athlon64 athlon-mp athlon-xp athlon-4 athlon-tbird athlon k8 k6-3 k6-2 k6 k5
    • Intel: core2 core nocona pentium4m pentium4 prescott pentium3m pentium3 pentium-m pentium2
    • Via: c3 c3-2
  • Alpha/AXP: ev67 ev6 pca56 ev56 ev5 ev45 ev4
  • AMD64 architecture: opteron, athlon64, nocona, prescott, core2
  • Intel ia64 architecture: itanium2, itanium

С помощью него можно сказать компилятору под какой процессор генерировать код. Зная какой процессор используется в системе, компилятор сможет оптимизировать конечный код под конкретную архитектуру процессора, что в общем случае приведет к росту производительности системы и программ. За дополнительной информацией обращайтесь в ман, а также посмотрите пример этого файла в /usr/share/examples/etc/make.conf.

Отключение ненужных программ на этапе компиляции дерева исходных кодов системы осуществляется через файл /etc/src.conf. Здесь я приведу часть параметров, остальные вы можете посмотреть в мане - man src.conf. Итак, параметры:

  • WITHOUT_BIND - если установить этот параметр, то все что связано с пакетом bind собираться и устанавливаться не будет
  • WITHOUT_BLUETOOTH - все, что связано с подсистемой Bluetooth (модули ядра, библиотеки, программы) собираться и устанавливаться не будет
  • WITHOUT_FREEBSD_UPDATE - не компилить тулзу freebsd-update(8)
  • WITHOUT_INET6 - не компилить проги и библиотеки, которые работают только с протоколом IPv6. Все остальные программы и библиотеки будут собраны без поддержки протокола IPv6
  • WITHOUT_IPFW - не компилить все тулзы, связанные с IPFW
  • WITHOUT_IPX - не компилить проги и либы, работающие с протоколом IPX
  • WITHOUT_PF - не компилить фаервол PF
  • WITHOUT_WIRELESS - не компилить проги, используемые для работы с беспроводными сетями 802.11 (wpa_supplicant(8) и hostapd(8)). Все остальные программы и библиотеки будут собраны без поддержки беспроводных сетей 802.11
  • WITHOUT_ZFS - не компилить все, что связано с файловой системой ZFS

В итоге после этих не хитрых настроек процесс компиляции немного ускорится, что сэкономит нам время.

Добавить комментарий

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
Яндекс.Метрика