The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск стандартной Си-библиотеки Musl 1.2.4

03.05.2023 09:10

После года разработки представлен релиз стандартной Си-библиотеки Musl 1.2.4, предоставляющей реализацию libc, которая подходит для применения как на стационарных ПК и серверах, так и на мобильных системах, сочетая полноценную поддержку стандартов (как в Glibc) с небольшим размером, низким потреблением ресурсов и высокой производительностью (как в uClibc, dietlibc и Android Bionic). Имеется поддержка всех обязательных интерфейсов C99 и POSIX 2008, а также частично C11 и набор расширений для многопоточного программирования (POSIX threads), управления памятью и работы с локалями. Код Musl поставляется под свободной лицензией MIT.

Основные изменения:

  • В DNS-резолвер добавлена возможность отправки запроса по TCP в случае неудачного обращения по UDP, что решило проблему с запросом больших DNS-записей и наладило совместимость с рекурсивными DNS-серверами, не поддерживающими отдачу части результата в обрезанных UDP-ответах. Попутно устранено ещё несколько недоработок, связанных с DNS, таких как невозможность раздельной обработки состояний NODATA и NXDOMAIN.
  • Объявлен устаревшим программный интерфейс "LFS64" (Large File Support), ранее реализованный через макросы, подменяющие имена (например, "#define stat64 stat"). Данный интерфейс теперь не предоставляется в режиме _GNU_SOURCE, но пока остаётся доступен при выставлении переменной "-D_LARGEFILE64_SOURCE" в CFLAGS.
  • В компоновщике и коде static-PIE реализована поддержка формата относительных перемещений адресов RELR (relative relocation), позволяющего сократить размер относительных перемещений в разделяемых объектах и исполняемых файлах, скомпонованных в режиме с PIE (Position-independent executables).
  • Устранена серия проблем в функциях семейства printf.
  • Исправлена некорректная расстановка порядка цифр и не цифр в функции strverscmp.
  • Устранено состояние гонки в логике синхронизации потоков, возникающее при завершении работы потока, а также в многопоточном fork-е, pthread_detach и POSIX-семафорах.


  1. Главная ссылка к новости (https://www.openwall.com/lists...)
  2. OpenNews: Для избавления Glibc от проблемы 2038 года предложено прекратить использование utmp
  3. OpenNews: Выпуск системной библиотеки Glibc 2.37
  4. OpenNews: В Си-библиотеке nolibc, входящей в состав ядра Linux, реализована поддержка сигналов
  5. OpenNews: Представлена стандартная Си-библиотека Musl 1.0.0, развиваемая в качестве альтернативы Glibc
  6. OpenNews: Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/59069-musl
Ключевые слова: musl, libc
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (71) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (2), 09:22, 03/05/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +11 +/
    Пример того каким должен быть опенсорсный проект. Смотришь в исходники - качественный чистый код. Смотришь в исходники GLIBC - абсолютно нечитаемая лапша из define-ов, в которой в принципе человеку невозможно разобраться.
     
     
  • 2.4, Аноним (4), 09:36, 03/05/2023 [^] [^^] [^^^] [ответить]  
  • –17 +/
    типичный опенсорс проект, это точно, то есть нинужный никому огрызок
     
     
  • 3.6, Байтолюб (?), 10:33, 03/05/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Никому нинужный, кроме ембеддед дистрибутивов линуха типа альпина, на котором основаны 99% докер-образов, и т. д.
     
     
  • 4.9, Аноним (9), 10:41, 03/05/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >решeта типа альпина

    fixed

     
  • 4.10, Аноним (9), 10:43, 03/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Да и производительность рза в 2 ниже, чо уж там.
     
  • 3.7, Аноним (7), 10:34, 03/05/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > то есть нинужный никому огрызок

    Нужный корпорациям, которые на основе этого огрызка продают готовые решения за деньги.

     
     
  • 4.38, Аноним (38), 01:46, 04/05/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Для того, чтобы поверх этого писать качественный корпоративный код, типа

    double rest(float a, float b)
    {
    float res=a*b;
    for (int i=0; i<999999999999; i++)
    if (i <= res && i + 1 > res) {res = res - i; break;}
    return res;
    }

    - вполне сойдёт

     
     
  • 5.39, Илья (??), 07:23, 04/05/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Че за жесть?
     
  • 5.44, Аноним (-), 09:40, 04/05/2023 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     
  • 5.62, Аноним (62), 14:36, 04/05/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Хороший и качественный бенчмарк. А по названию функции понятно что она для отдыха. Самое время побенчить.
     
  • 3.78, grammar nazi (?), 18:20, 07/05/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > нинужный никому

    Мнение человека, не умеющего писать по русски, очень важно!

     
  • 2.18, OpenEcho (?), 14:32, 03/05/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > в которой в принципе человеку невозможно разобраться.

    Так на это и рассчет + подцепить себя в зависимости - везде

     
  • 2.22, Коми (?), 17:23, 03/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Да, glibc у всех, а это поделие только у разраба и его бабушки.
     
     
  • 3.36, Аноним (38), 01:41, 04/05/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Навязывается в Alpine, в результате чего сложился миф, что "докер - это тормоза".
    Alpine часто используется в качестве основы для докер-контейнеров, а работа с памятью в мюслях не быстрая.
     
     
  • 4.77, Аноним (77), 09:17, 06/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Единственный источник тормозов в musl - это аллокатор.
    Но никто не мешает использовать любой другой, jemalloc тот же.
     
  • 3.41, Аноним (41), 08:37, 04/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Разработчики OpenWrt с тобой не согласны: https://www.opennet.me/opennews/art.shtml?num=42439
     

  • 1.3, Аноним (3), 09:24, 03/05/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    пример мюслей
    везде запускается https://github.com/JFreegman/toxic/releases/tag/v0.12.0
     
     
  • 2.5, Аноним (4), 09:37, 03/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    спасибо поржал над это поделкой
     
     
  • 3.8, Аноним (8), 10:35, 03/05/2023 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Покажи свой гитхаб, хочу тоже поржать над экспертом хеллоуворлдщиком.
     
  • 2.79, Имя Себе (?), 18:52, 10/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Несколько лет назад мюсли были не совместимы с tcmalloc, от которой зависимы многие серьёзные проекты, такие как базы данных, где тонкая работа с памятью ключевой момент производительности. И это по-моему единственная проблема из сложнорешаемых, которая не позволяла просто так взять и перейти на мюсли по дефолту для любого дистрибутива. Сложнорешаемосто была на стороне разработчиков tcmalloc и никак не зависела от команды musl. Интересно, как сейчас обстоят дела?
     

  • 1.11, Аноним (11), 11:35, 03/05/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Work on musl has also been sponsored by:
    The Zig Programming Language

    Ого.

     
  • 1.12, Аноним (12), 11:47, 03/05/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Локаль уже осилили?
     
  • 1.14, Царь бог лучший князь (?), 12:39, 03/05/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    У этого поделия до сих пор стек 128-256 КБ, чтобы некоторый софт, полагаясь на нормальный размер стека, мог и упасть? А его аллокатор, что пару лет назад катастрофически отставал даже от glibc malloc (не говоря уже о mimalloc/jemalloc) в многопоточных приложениях, его исправили?
     
     
  • 2.16, n00by (ok), 12:49, 03/05/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Порадуете цитатой стандарта, где определён нормальный размер стека?
     
     
  • 3.23, Коми (?), 17:26, 03/05/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Стандарт в опенсорсе, а ты смешной.
     
     
  • 4.31, n00by (ok), 18:14, 03/05/2023 [^] [^^] [^^^] [ответить]  
  • –4 +/
    А ты Чат Жэ-Пэ-Тэ и потому не знаешь, что у языка Си есть стандарт. И даже название новости не смог прочитать.
     
     
  • 5.37, Аноним (38), 01:42, 04/05/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > А ты Чат Жэ-Пэ-Тэ

    Нет, это вы Чат Жэ-Пэ-Тэ

     
  • 5.42, Коми (?), 08:44, 04/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Путать теплое с мягким это твоя судьба. Ты не только смешон, но тебя ещё и жаль.
     
     
  • 6.49, n00by (ok), 09:53, 04/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А мне тебя не жаль. У тебя нет ни имени, ни гитхаба - некого жалеть.
     
     
  • 7.51, Аноним (-), 11:44, 04/05/2023 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 8.57, n00by (ok), 14:13, 04/05/2023 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
  • 4.40, Аноним (40), 07:41, 04/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Опенсорс придерживается, например, RFC.
     
     
  • 5.43, Коми (?), 08:45, 04/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Да, это заметно.
     
     
  • 6.70, Аноним (70), 16:18, 04/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    У тебя, внезапно, тырнет неработоспособен?
     
  • 2.17, Аноним (41), 13:45, 03/05/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Размер стека можно задать вручную -Wl,-z,stack-size=N
     
     
  • 3.19, OpenEcho (?), 14:41, 03/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Размер стека можно задать вручную -Wl,-z,stack-size=N

    Не гоже "князьям" возиться с такой лабудой, их величества привыкли к  include, include, include then next - next - next, и то под хорошим настроением, а то вообще пусть холопы в виде ЧатГПТ за них думают

     

  • 1.20, Аноним (20), 14:42, 03/05/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Nvidia moment
     
  • 1.21, OpenEcho (?), 14:43, 03/05/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > В DNS-резолвер добавлена возможность отправки запроса по TCP в случае неудачного обращения по UDP

    Это пожалуй самое  полезное !

     
     
  • 2.32, Аноним (32), 19:11, 03/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А зачем DNS-резолвер, в Си-библиотеке?
     
     
  • 3.33, Аноним (33), 20:19, 03/05/2023 [^] [^^] [^^^] [ответить]  
  • +5 +/
    man gethostbyname
     

  • 1.24, Аноним (24), 17:32, 03/05/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Пф, ещё одна "свободная и открытая" реализация стандартной библиотеки Си. Как будто C и C++ не созданы были с расчетом на привязку к конкретной платформе и операционной системе. Эти "кроссплатформенные" решения всегда теряют в производительности и оптимизации под конкретную архитектуру. Мне и моим приложениям на Windows нужна именно та библиотека, которая оптимизирована специально под эту ОС. И пусть сторонники "свободного ПО" проповедуют подобные решения, мне они не интересны!
     
     
  • 2.26, Аноним (26), 17:38, 03/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    О, какой же отсталый и косный взгляд Windows и C давно устарели и должны уйти... большой текст свёрнут, показать
     
     
  • 3.28, Аноним (24), 17:42, 03/05/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ха, как ни посмотри, а этот прогрессивный воззвание полно отсталых идей, выдав... большой текст свёрнут, показать
     
     
  • 4.64, Michael Shigorin (ok), 14:49, 04/05/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Мои приложения должны работать, а не демонстрировать "прогрессивные"
    > технологии. И если меня устраивает Windows, С++ и привязка
    > к конкретным архитектурам, то это и есть "достойный" и разумный
    > подход.

    Ваши пользователи завтра (если не позавчера) заслуженно отведут Вас хорошо если просто к следователю как саботажника, у которого с 2014 года между левым ухом и правым ухом так ничего и не щёлкнуло.

    А тот -- возможно, и не отправит к психиатру выяснять, почему же не щёлкнуло и в 2022, когда "преимущества Windows" были наглядней некуда изложены непосредственно поставщиком.

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

    Можете начать с http://mcst.ru/elbrus_prog по части оптимизации, там есть платформонезависимые штуки :-)

    // отправлено с e2k-alt-linux

     
     
  • 5.71, Аноним (71), 16:19, 04/05/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ну то есть даже правильно пишете, если вычеркнуть Windows.

    aka "Неправильная у вас точка зрения, думайте лучше как я".

     
  • 5.73, n00by (ok), 18:32, 04/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >> Мои приложения должны работать, а не демонстрировать "прогрессивные"
    >> технологии. И если меня устраивает Windows, С++ и привязка
    >> к конкретным архитектурам, то это и есть "достойный" и разумный
    >> подход.
    > Ваши пользователи завтра (если не позавчера) заслуженно отведут Вас хорошо если просто
    > к следователю как саботажника, у которого с 2014 года между левым
    > ухом и правым ухом так ничего и не щёлкнуло.

    У меня щёлкнуло. Тогда я нарыл в глубинах Qt5 велосипедный dynamic_cast, реализованный как обёртка над  dynamic_cast, и понял, что это нельзя использовать, потому что очень скоро компания начнёт выкидывать legacy. Я немного ошибся в прогнозе. Qt не только забросила Qt5, но и ушла из России. Что не мешает этот неподдерживаемый код продавать.

    Кто решит оспорить "неподдерживаемый", пусть расскажет, как активировать отображение контекстного меню не по нажатию ПКМ, а по отпусканию. Это штатная возможность Qt5, не используемая в KDE (много лет висит баг), и где-то здесь валяется мой пример, как это делается.

    > Можете начать с http://mcst.ru/elbrus_prog по части оптимизации, там есть платформонезависимые
    > штуки :-)

    Зачем Вы это делаете? Я пробовал начать. Лично Вам оказалось не интересно.

     
  • 5.74, Аноним (-), 02:47, 05/05/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Шигорин теперь за мнения технического характера грозит гулагом, когда они ему не нравятся. Что дальше, Миш? Казалось бы уже всё, дальше некуда деградировать, но ты раз за разом находишь способы продолжить.
     
     
  • 6.75, n00by (ok), 06:45, 05/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Он не грозит. Он почему-то полагает, что Linux в России не повторит судьбу Windows. Тогда как Microsoft, IBM (RedHat) и прочие спонсоры ушли из России, а компания Meta запрещена и её сотрудники не принимают патчи. При этом сам он никаких гарантий дать не хочет.
     
  • 3.34, beck (??), 20:36, 03/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Привязка к конкретной платформе? Абсурд!
    > пересесть на достойную платформу - Linux.

    A.

     
  • 3.66, Аноним (70), 16:02, 04/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Напиши в комитетет по стандартизации C++. А то они там не вкурсе, что пора им расходиться и прекращать свою устаревшую деятельность.
     
  • 2.65, Аноним (70), 15:57, 04/05/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сторонник несвободного ПО, что забыл на ресурсе, посвящённом свободному ПО?
     

  • 1.25, Аноним (24), 17:32, 03/05/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Да кто им нужна эта их "мобильная оптимизация" и "низкое потребление ресурсов"? Мы же пишем приложения для настоящих компьютеров с мощными процессорами, а не для карманных гаджетов. Пусть эти "кроссплатформенные" решения и подходят для Android, настоящие программисты C++ предпочитают библиотеки, тщательно отполированные под Windows, с расширенной функциональностью и максимальной производительностью. Мне нужна не оптимизация под "мобильные устройства", а максимальная мощь для настольных приложений!
     
     
  • 2.27, Аноним (26), 17:40, 03/05/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ах, вот оно как Судя по всему, ты - типичный архаичный программист, пишущий и... большой текст свёрнут, показать
     
     
  • 3.29, Аноним (24), 17:43, 03/05/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Хм, так это же классическая история об отсталых консерваторах , не способных во... большой текст свёрнут, показать
     
     
  • 4.53, Аноним (53), 11:55, 04/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ты бы попробовал посидеть с годик на Musl скажем в Void Linux перестал бы чушь пороть. Настольные системы понятие растяжимое и их простые версии отстают от мобильных процессоров очень часто потому как все инновации сосредоточены в мобильном сегменте, ну может отчасти серверный затронут многоядерными армами.
    Выбор идет у людей между быть привязанным к одной платформе или сразу писать переносимый код. Твое мнение отвергания безынтересно в принципе.
    Твоя баланда у корыта никому не сдалась. Винда нужна в исключительных случаях вроде поддержки звуковых карт, которые поломали в линуксе объявив рабочими например.
    Ни ядро не собрать, ни чего-то поэкспериментировать - ничего нельзя в винде в принципе фанат ты гребаный.
     
  • 4.63, Michael Shigorin (ok), 14:44, 04/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот почему

    Занятная каша в голове, даже разбирать незачем -- в рамочку и на стенку.

    Вообще такое очучение последнее время, что на форуме вновь работает пара экземпляров http://wiki.opennet.ru/MSSP и думают, что уши попыток посрывать стек смесью истинных и ложных утверждений не торчат.

     
  • 2.61, Аноним (62), 14:27, 04/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Да твоя бухгалтерия без этого не посчитается.
     

  • 1.30, Самый умный из вас (?), 18:11, 03/05/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Может линковаться статически в отличии от убожества glibc. Ещё бы производительность подтянуть
     
  • 1.35, Аноним (38), 01:39, 04/05/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Устранена серия проблем в функциях семейства printf.

    Что, опять переполнение с выполнением кода?

     
     
  • 2.50, n00by (ok), 09:57, 04/05/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Устранена серия проблем в функциях семейства printf.
    > Что, опять переполнение с выполнением кода?

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

    - fwprintf didn't print most fields on open_wmemstream FILEs
    - wide printf %lc ignored field width
    - wide printf erroneously processed %n after encoding errors
    - use of wide printf %9$ argument slot overflowed undersized buffer
    - swprintf malfunctioned on nul character in output

     
     
  • 3.55, Аноним (38), 12:43, 04/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Оптимизация.
    Зная, насколько криворук Рич Фелкер, вполне закономерно предположить, что он опять допустил переполнения в printf.
    Действительно, так и есть. Можно было не ходить по ссылкам.
     
     
  • 4.58, n00by (ok), 14:21, 04/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > вполне закономерно предположить, что он опять допустил
    > переполнения в printf.

    "опять переполнение с выполнением кода"

    > Действительно, так и есть.

    Пока есть подмена тезиса и попытка заболтать существенную часть.

     

  • 1.52, Аноним (-), 11:45, 04/05/2023 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     
  • 1.54, Аноним (54), 12:35, 04/05/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Так мой коронный вопрос: списки, деревья, хеши, бтрии, индексы, регулярки есть в этой "стандартной" библиотеке?
     
     
  • 2.56, Аноним (41), 13:46, 04/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ты путаешь стандартную библиотеку С с библиотекой С++.
     
  • 2.59, Аноним (62), 14:25, 04/05/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Твоё объяснение зачем они там должны быть?
     
  • 2.69, llolik (ok), 16:09, 04/05/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Юзай GLib. Там всё это есть и даже больше. Наверное, даже с musl он соберётся (честно, не пробовал).
     

  • 1.72, RM (ok), 18:26, 04/05/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >В DNS-резолвер добавлена возможность отправки запроса по TCP в случае неудачного обращения по UDP, что решило проблему с запросом больших DNS-записей и наладило совместимость с рекурсивными DNS-серверами, не поддерживающими отдачу части результата в обрезанных UDP-ответах. Попутно устранено ещё несколько недоработок, связанных с DNS, таких как невозможность раздельной обработки состояний NODATA и NXDOMAIN.

    "Так вот она чо, Петрович"
    Видать роутер с Musl собран, а я все гадал, каког... т.е. почему DNS по TCP не ходит.

     
  • 1.76, Аноним (76), 00:08, 06/05/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Здесь некоторые пишут, что musl медленнее glibc. Я решил это проверить и собрал два минимальных образа BuildRoot для OrangePI_PC с двумя этими библиотеками. Конфигурация по умолчанию из BuildRoot, только изменил версию ядра на актуальную. Вот что получилось: https://cloud.mail.ru/public/83jc/MSstJxrFM

    Если кратко, то musl чаще всего немного быстрее, но разница незначительная.

     
     
  • 2.80, Имя Себе (?), 19:08, 10/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    На самом деле разница может быть значительна. Несколько лет назад игрался с этой библиотекой. Там где нужно выжать всё из ЦПУ, производительность программ для рассчётов, собранных с использованием привычной glibc, была в 1.5-2 раза БЫСТРЕЕ чем c musl.

    Ещё, во времена тех экспериментов приятно удивил clang, но то другая история.

    В любом случае проект примечательный — статически собранный файл на базе alpine c musl весил в 20-40 раз меньше аналогичного на glibc. Хочется надеятся, что вся эта экономия не за счёт ассемблерных инструкций, позволяющих добиться максимальной производительности от железа.

     
     
  • 3.81, n00by (ok), 09:58, 11/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > В любом случае проект примечательный — статически собранный файл на базе alpine
    > c musl весил в 20-40 раз меньше аналогичного на glibc. Хочется
    > надеятся, что вся эта экономия не за счёт ассемблерных инструкций, позволяющих
    > добиться максимальной производительности от железа.

    Основная проблема в удалении "мёртвого" кода линкером. Даже при LTO не всегда возможно определить участки кода, которые при статическом связывании не вызываются. Что бы упростить задачу линкеру, иногда приходится принимать меры в библиотечном коде или вводить условную трансляцию. При создании glibc не ставится цель уменьшить размер исполняемого файла -- там надо, что бы любой школьник мог подгрузить руткит при помощи LD_PRELOAD.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру