LINUX.ORG.RU
ФорумTalks

Как из стабильного Debian'а сделать Gentoo

 , ,


3

6

Совершенно случайно заметил в списке пакетов уютного дебиана такой себе apt-build.
Он в одну команду скачивает сорцы пакета, и всех зависимых от него, конпеляет их с выбранными флагами, пакует в пакеты, создаёт репозиторий, подключает в sources.list и устанавливает поверх системных.

Да, я тоже офигел.

Пошёл в гентувики за «самыми крутыми флагами gcc» и пересобрал p7zip-full с -O3 -march=native -mtune=native -ftree-vectorize.
И что мы имеем? '7z b', cтоковый пакет:

   7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
   p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Core(TM) i5-7500T CPU @ 2.70GHz (906E9),ASM,AES-NI)

   Intel(R) Core(TM) i5-7500T CPU @ 2.70GHz (906E9)
   CPU Freq:  1396  3192  3286  3281  3267  3267  3215  3238  3258

   RAM size:   32064 MB,  # CPU hardware threads:   4
   RAM usage:    882 MB,  # Benchmark threads:      4

                          Compressing  |                  Decompressing
   Dict     Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
            KiB/s     %   MIPS   MIPS  |      KiB/s     %   MIPS   MIPS

   22:      12954   311   4046  12602  |     145071   391   3165  12377
   23:      13802   333   4226  14063  |     143024   390   3173  12375
   24:      12865   329   4209  13833  |     140539   389   3175  12337
   25:      12237   322   4335  13972  |     138840   390   3170  12356
   ----------------------------------  | ------------------------------
   Avr:             324   4204  13617  |              390   3171  12361
   Tot:             357   3687  12989


Окроплённый гентушной вики:
7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Core(TM) i5-7500T CPU @ 2.70GHz (906E9),ASM,AES-NI)

Intel(R) Core(TM) i5-7500T CPU @ 2.70GHz (906E9)
CPU Freq:  2489  3034  3268  3290  3182  3247  3153  3231  3250

RAM size:   32064 MB,  # CPU hardware threads:   4
RAM usage:    882 MB,  # Benchmark threads:      4

                       Compressing  |                  Decompressing
Dict     Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
         KiB/s     %   MIPS   MIPS  |      KiB/s     %   MIPS   MIPS

22:      14104   320   4281  13721  |     141704   384   3152  12090
23:      14587   342   4349  14862  |     140406   384   3161  12149
24:      13383   329   4375  14390  |     137682   382   3164  12087
25:      12816   327   4471  14634  |     136030   383   3162  12106
----------------------------------  | ------------------------------
Avr:             330   4369  14402  |              383   3160  12108
Tot:             356   3764  13255


Я всегда подозревал в конпеляторщиках умственно отсталых.
Теперь диагноз надёжно подтверждён.

★★★★★

Ответ на: комментарий от erfea

Так покажи нам, как собрать 7-zip, чтобы он в бенчмарке показал хотябы 20% прироста перед голым -O2 без всяких там -march=native.

Я всё пытаюсь затроллить гуру компиляции, чтобы они научили, но пока безуспешно.

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

Не поверите, но ядро Gentoo почему то намного устойчивее к электромагнитным помехам, чем Debian. Проверено много раз на SystemRescueCD (хотя может у него какое то свое ядро, в смысле настройки).

Например, SATA и USB работает НАМНОГО стабильнее, когда в Debian отваливается, Ethernet нормально на гигабитной скорости, в Debian только 100 мбит. Ну ессно на одной и той же железяке в одинакомых прочих условиях.


Очень хотелось бы узнать, как такая устойчивость к помехам достигается в SystemRescueCD и как аналогичного достичь в Debian?

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

Умственно отсталые — это те, кто думают что суть генты в канпелянии с O3 :^)

+++

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

Ещё когда-нибудь дорастёшь до знания что там гораздо меньше чем 65 тыщ пакетов.

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

в генте это зовется оверлеями, как локальными так и удаленными.

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

Еще раз говорю если ты не знаешь зачем нужна компиляция из исходников, это не говорит ничего о тех кто успешно пользуется этой фичей. Пока что ты спрашиваешь почему золотая ложка не делает говно вкусным.

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

Мамка про оверлеи и бинхост не рассказывала? Гента вполне себе поддерживает бинарные пакеты, чтоб не канпелять на каждой машине, просто они официально не поставляются

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

Мамка про оверлеи и бинхост не рассказывала? Гента вполне себе поддерживает бинарные пакеты, чтоб не канпелять на каждой машине, просто они официально не поставляются

А кстати нет ли публично доступных оверлеев репов с бин пакетами по количеству пакетов, чтобы было сравнимо с репами Debian/Bubuntu ?

Т.е. чтобы компилять только изредка какунить экзотику по мере необходимости. И чтобы именно Gentoo, а не Calculate Linux.

sanyock ★★
()
Последнее исправление: sanyock (всего исправлений: 1)
Ответ на: комментарий от sanyock

А кстати нет ли публично доступных оверлеев репов с бин пакетами по количеству пакетов, чтобы было сравнимо с репами Debian/Bubuntu ?

1. Сравнимо по количеству с репами дебиан/убунту не в каждом бинарном дистре есть
2. Калькулейт.

J ★★★★★
()

Я всегда подозревал в конпеляторщиках умственно отсталых.
Теперь диагноз надёжно подтверждён.

Спасибо, Ваше мнение очень важно для нас.

А теперь марш изучать основы оптимизаций и курить исходники 7zip до просветления.

А вообще не очень понятно чего ТС ожидал - что взяв с потолка какие-то флаги и применив их к рандомному пакету будет ускорение (тем более по сравнению с -O2)? Смешно. Для интела средняя разница между -O0 и -O3 составляет ~2.3 раза (-O2 vs -O3 сейчас не помню, но не так много).

Обожаю читать как кто-то замеряет производительность и после этого ставит диагнозы.

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

Когда замеряешь производительность, надо понимать что и зачем делаешь. Если хотел замерять компилятор, то почему запуск на 4 ядра в 4 потока и почему только на одном бенчмарке? Если хотел 7 zip замерить, то почему только на одном алгоритме и где сравнение с аналогами? Если хотел процессор замерить то почему только в одном режиме ядер/потоков? Где анализ результатов?

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

Интересно какие программы на линуксе при перекомпиляции со всеми флагами и примочками под конкретное железо дадут существенный прирост скорости.

100 лет назад под старое железо mplayer пересобирал с флагами - тормозил явно меньше, причём пересобирал и вод вынь и под линь - везде был результат.

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

Я померял разницу во встроенном бенчмарке архиватора между дистрибутивной и «оптимизированной» сборками.
Потом Singularity померял то же самое и с теми же результатами.

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

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

p7zip на asm и использует intel AES-NI

Не совсем. Он это использует в боевой версии. А в бенчмарке там плюсовый код :)

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

Не нравится этот бенчмарк? Собери сам и отбенчмаркай как считаешь нужным.

Я замерял gcc-7.1 на Core2 Duo CPU E7300 на SPECCPU-2006 в однопоточном режиме, у меня результаты следующие. Сравнение режимов O2/O3 даёт средний результат (больше - лучше):

  • INT: 1.087
  • FP: 1.050

Замеры довольно грубые, но даже с более точными чудес там не будет.

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

а я работал в конторе, которая ынтырпрайзную софтинку со всеми её зависимостями собирала с -O3 %)

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

-pipe к оптимизации выдаваемого результата никакого отношения не имеет, просто компилятор меньше памяти жрёт в процессе, насколько помню

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

-pipe к оптимизации выдаваемого результата никакого отношения не имеет

Таки да

просто компилятор меньше памяти жрёт в процессе

Нет, -pipe указывает компилятору, что вместо промежуточных файлов компиляции следует использовать пайпы, из-за чего уменьшается нагрузка на диск и несколько выростает скорость компиляции, но памяти жрёт больше.

Из мана:

-pipe
           Use pipes rather than temporary files for communication between the various stages of compilation.  This fails to work on some systems where the assembler is unable to read from a pipe; but the GNU assembler has no
           trouble.

Singularity ★★★★★
()

Вообще-то, если посмотреть твои циферки, то скорость сжатия как раз выросла на 4-5%, а скорость распаковки упала где-то на 2-3%, а т.к. сжатие более медленная операция и увеличение её производительности имеет больший вес, то на самом деле в целом производительность выросла

Harald ★★★★★
()

С разморозкой.

Deleted
()

Gentoo - это гибкая универсальная ОС. Она обладает как плюсами, так и минусами.

Плюсы:

1) USE-флаги

2) Роллинг-релиз (всегда самый свежий софт(ну почти, во всяком случае гораздо свежее стабильного дебиана))

3) Гибкость управления версиями пакетов - если шо, то берём бажный пакет и замаскировываем.

4) Как дополнительный бонус - оптимизация под конкретную архитектуру. Когда компьютеры были слабее, оптимизация была более заметна. Плюс можно включить определенные флаги процессора - sse,sse2,mmx,sse3, и т.д.

5) ИМХО, мне кажется что в генту меньше бюррократии. В дебиане есть лидер проекта, четкая иерархия, даже есть своя Конституция.

6) Гентушную вики и документацию приятнее читать чем дебиановскую. К тому же она зачастую актуальнее.

7) Можно легко накладывать патчи при компиляции.

8) Можно создать свой локальный оверлей и писать ебилды самостоятельно. Дебиановские пакеты создавать тяжелее.

9) Генту дает выбор - systemd или openrc, alsa или pulseaudio, и т.д.

Минусы:

1) Компиляция занимает какое-то время. На мощном компьютере это вполне вменямое время. Хотя я и на нетбуке собираю с процессором Celeron'ом N2830 2.16 ГГц и 2 Гб ОЗУ.

2) Бывают баги и блокировки на тестовой ветке. Раздражает, но терпимо.

3) Некоторые баги не исправляют долго ввиду малого количества мейнтейнеров. Также в силу этой же причины некоторый софт не первой свежести.

Вывод: Debian - хорошая ОС, но Gentoo лучше. Сколько я не пытался найти что-то лучше генту, но всегда возвращался обратно.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)

Кстати, попробуй то же самое, только без -O3

P.S. Говно это ваше O3

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