The OpenNET Project / Index page

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

Производительность Ubuntu-пакета jq удалось увеличить в 1.9 раза путём пересборки

19.03.2025 11:34

Опубликованы результаты оценки влияния на производительность пересборки пакетов для Ubuntu с различными опциями и реализациями функций выделения памяти. Экспериментатору удалось на 90% (в 1.9 раза) повысить производительность пакета jq с инструментарием для обработки данных в формате JSON, путём обычной пересборки из того же пакета с исходным кодом, без внесения изменений в сам код. Производительность оценивалась через измерение времени выполнения типового фильтрующего запроса над данными GeoJSON, размером 500МБ.

Итоги эксперимента:

  • Вариант, собранный в GCC из тех же исходных текстов с флагами по умолчанию оказался быстрее бинарного пакета Ubuntu на 2-4%.
  • Пересборка в Clang 18 с уровнем оптимизации"-O3", включением оптимизации на этапе связывания ("-flto") и отключением отладочной информации ("-DNDEBUG") привела к ускорению на 20%.
  • Пересборка с системой распределения памяти TCMalloc (добавление "-L/usr/lib/x86_64-linux-gnu -ltcmalloc_minimal" в LDFLAGS) привела к ускорению на 40%.
  • Замена функций malloc на системы распределения памяти tcmalloc, jemalloc и mimalloc через "LD_PRELOAD=/usr/lib/x86_64-linux-gnu/lib....so" привела к увеличению производительности на 27%, 29% и 44%. При запуске с mimalloc, показавшем ускорение на 44%, выставлялась переменная окружения "MIMALLOC_LARGE_OS_PAGES=1".
  • Пересборка пакета с mimalloc в LDFLAGS вместо связывания через LD_PRELOAD привела к ускорению прохождения теста на 90%. Другой тест по обработке 2.2GB JSON-данных в 13000 файлах также показал прирост производительности примерно в два раза.


  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Сравнение производительности сетевого драйвера в вариантах на 10 языках программирования
  3. OpenNews: Сравнение эффективности 20 языков программирования
  4. OpenNews: Разработчики Ubuntu проанализировали эффективность включения оптимизации PGO
  5. OpenNews: Miсrosoft открыл код системы распределения памяти mimalloc
  6. OpenNews: Google опубликовал новый вариант системы распределения памяти TCMalloc
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/62912-malloc
Ключевые слова: malloc, tcmalloc, ubuntu, benchmark, jq
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (115) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 12:39, 19/03/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +4 +/
     
  • 1.2, Аноним (2), 12:42, 19/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –13 +/
    о, будем знать что такой пакет есть
     
     
  • 2.4, Аноним (4), 12:47, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    это консольная утилита чтобы извлечь из JSON значение к примеру из http ответа после запроса curl-ом
     
     
  • 3.8, Аноним (8), 13:01, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я использую jq для переформатирования однострочного json, наример:

    {"defaultHandlersVersion":{"ru":5},"mimeTypes":{"application/pdf":{"action":0,"extensions":["pdf"]},

    в

    {
      "defaultHandlersVersion": {
        "ru": 5
      },
      "mimeTypes": {
        "application/pdf": {
          "action": 0,
          "extensions": [
            "pdf"
          ]
        },
    с последующим удобным редактированием и возвратом в однострочный вид при сохранении.

    У меня так работает в mc, nano и SublimeText

     
     
  • 4.41, Аноним (41), 13:49, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Поделись плз как саблайм настроил так вместе с jq
     
     
  • 5.57, Аноним (8), 14:29, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    У Саблима есть плагин, который так и называется jq :-)
    В командной панели появяются новые команды: "jq:Pretty JSON" и "jq:Compact JSON"
     
  • 4.42, Вася Пупкин (?), 13:50, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Использую convfmt для этого. Еще и разные форматы прожевать можно.
     
  • 4.118, Аноним (118), 21:34, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    В KDE Kate такая функция есть из коробки. И не только для JSON.
    Но для GNU nano, где такой нет, но можно привязать вызов команды к шорткату, это хорошая опция.
     
  • 2.29, keydon (ok), 13:25, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Да и им (увы) половина интернета пользуется. А другая половина не умеет ничем пользоваться.
     
     
  • 3.110, PnD (??), 19:38, 19/03/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 4.128, Аноним (128), 22:51, 19/03/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.58, Ilya Indigo (ok), 14:36, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Если бы в писали API на баше, вы бы давно про jq знали.
    И даже если вы пишете или работаете с API на любых других языках,
    то jq может сжатый JSON-ответ от API развернуть в удобочитаемый вид.
     
     
  • 3.75, Аноним (75), 15:44, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В одном относительно популярном языке программирования это (представление джейсона в удобоваримом виде) идет просто из коробки.
     
     
  • 4.120, Аноним (118), 21:38, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Жаль только "коробка" весит сотни мегабайт, и её нужно в систему тащить, развёртывать, компилять. А тут решение, которое работает сразу в командной оболочке. Без компиляции и СМС.
     
  • 2.71, Аноним (71), 15:15, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    В conky каждые 15 минут для погоды юзаю.
     
     
  • 3.76, Ilya Indigo (ok), 15:53, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > В conky каждые 15 минут для погоды юзаю.

    Читается так, как будто вы каждые 15 минут сами curl на api.open-meteo.com запускаете. :-)

     
     
  • 4.84, Аноним (71), 16:22, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Хах, execi в conky юзать легче чем научиться правильно излагать мысли)

    P.S я wttr.in использую, open-meteo не пробовал.

     
  • 2.121, Вася (??), 21:58, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    это базовый пакет уже давно, особенно с тех пор как многие coreutils пошли по стопам powershell и начали мочь в json, что очень сильно упростило предсказуемость парсинга и пайпинг
     

  • 1.3, X86 (ok), 12:46, 19/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +12 +/
    Вот кто бы пересобрал блокнот в Windows 11, чтобы он запускался в два раза быстрее )
     
     
  • 2.7, Аноним (7), 12:54, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +11 +/
    И калькулятор заодно, чтобы увеличть пропускную способность телеметрии.
     
     
  • 3.27, _kp (ok), 13:21, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Так можно установить предыдущие версии и назначить по умолчанию их.
    Аналогично  как и с другим ПО. Или можно использовать более лучшие альтернативы.
     
  • 2.26, Соль земли (?), 13:21, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +6 +/
    винда работает не на процессорных тактах, а на денежных операциях
     

  • 1.5, Аноним (8), 12:50, 19/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Если бы они помимо -DNDEBUG добавили -march=native -mtune=native, результат был бы еще более ошеломляющий.
     
     
  • 2.10, Аноним (10), 13:05, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Но не годился бы для других компьютеров
     
  • 2.19, Аноним (-), 13:14, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • –7 +/
    > Если бы они помимо -DNDEBUG добавили -march=native -mtune=native,
    > результат был бы еще более ошеломляющий.

    Так нужно просто переходить на x86-64-v3 и x86-64-v4. И для любителей хлама x86-64-v2 и ниже делать особые загончики с дистрибутивами для "особенных". Пусть там и сидят.
    А то получается что из-за таких любителей старья все нормальные люди не могут использовать свое железо на 100%.

     
     
  • 3.63, Pahanivo (ok), 14:52, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Пффф пересобирай и пользуйся, тебе никто не запрещает (если только лечащий врач).
    Ибо прежде чем что-то вякнуть надо хоть немного осознавать причинно-следственную технологическую связь.
     
     
  • 4.70, Аноним (-), 15:15, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Пересобираю и пользую Меня забавляет лицемерие местных клоунов - когда софтина ... большой текст свёрнут, показать
     
     
  • 5.74, Аноним (7), 15:37, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Чего, это Bulldozer помоечный? Ну вы, батенька, и зажрались!
     
  • 5.77, Pahanivo (ok), 15:57, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Конечно, конечно ... все нищегрызы и уроды, один ты Д"артаньян.
    А то что менять железо стоит денег тебе в голову мысля никогда не приходила? А если этого железа еще и хватает то просто бессмысленно?
     
     
  • 6.79, Аноним (-), 16:03, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Конечно, конечно ... все нищегрызы и уроды, один ты Д"артаньян.

    Замечу, что про уродов сказал ты, а не я. Хотя возможно тебе видней :)

    > А то что менять железо стоит денег тебе в голову мысля никогда не приходила?
    > А если этого железа еще и хватает то просто бессмысленно?

    Ну так не меняйте. Просто сидите на соотвествующих дистрах.
    Вы осознаете насколько неоптимально работает софт из-за таких как вы? Или не доходит?
    Это как если бы сейчас в банках все сидели со счетами, потому что "в стандартной поставке идут счеты, а не хотя бы калькулятор". А если вам нужен калькулятор  ̶п̶е̶р̶е̶с̶о̶б̶е̶р̶и̶т̶е̶ купите сами.

     
     
  • 7.102, Pahanivo (ok), 17:22, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Вы осознаете насколько неоптимально работает софт из-за таких как вы? Или не
    > доходит?

    Вы осознаете в принципе на сколько не оптимально работает софт, ибо заложить аппаратные инструкции под каждый алгоритм невозможно?

     
  • 5.123, Аноним (118), 22:02, 19/03/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 4.122, Вася (??), 22:01, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    может лучше те с v2 пересобирать будут? они свое время не уважают, им что под в2 пересобирать, что просто его юзать - одинаково пофигу, ждать они привыкли
     
  • 3.67, Аноним (7), 15:02, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так пусть супернормальные себе сами соберут под их x86-64-v5+. А то у них загончики относительно важности собственной персоны.
     
     
  • 4.109, Ахз (?), 19:31, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    пффф, это пусть нишуки себе собирают под их i386.
     
  • 3.96, Аноним (96), 17:00, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А теперь в циферках приведи выигрыш по скорости т экономии энергии с учётом времени и энергии на пересборку. Хотя бы за пять лет отобьётся?
     
     
  • 4.124, Pahanivo (ok), 22:06, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > А теперь в циферках приведи выигрыш по скорости т экономии энергии с
    > учётом времени и энергии на пересборку. Хотя бы за пять лет
    > отобьётся?

    Ага, щаз. Они еще по арифметике не дошли до процентов. То что держать кучи бинари под разные микроархи неоптимально до него никогда и не дойдет. тупые'c. А для configure/make/install по необходимости у него лапки.

     

  • 1.6, n00by (ok), 12:50, 19/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Вот это часть работы, какую бы выполняли "майнтайнеры" пакетов, будь они хоть немного инженерами.
     
     
  • 2.13, Аноним (10), 13:10, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Что-то мне подсказывает, что разработчики jq не совсем инженеры, если их код так часто дергает malloc. С другой стороны, если все программы начнут заранее резервировать огромные куски памяти, потом набегут люди с криками про неуёмное потребление памяти в современном Linux.
     
     
  • 3.40, n00by (ok), 13:49, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Что-то мне подсказывает, что разработчики jq не совсем инженеры, если их код
    > так часто дергает malloc.

    Может быть. Тогда бы "майнтайнер", будь он хоть немного инженером, не стал бы такое допускать до "прода", а сделал бы как положено.

    > С другой стороны, если все программы начнут
    > заранее резервировать огромные куски памяти, потом набегут люди с криками про
    > неуёмное потребление памяти в современном Linux.

    А где же архитектор? Ой, у нас тут свобода!

     
     
  • 4.50, Аноним (50), 14:09, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >> Что-то мне подсказывает, что разработчики jq не совсем инженеры, если их код
    >> так часто дергает malloc.
    > Может быть. Тогда бы "майнтайнер", будь он хоть немного инженером, не стал
    > бы такое допускать до "прода", а сделал бы как положено.
    >> С другой стороны, если все программы начнут
    >> заранее резервировать огромные куски памяти, потом набегут люди с криками про
    >> неуёмное потребление памяти в современном Linux.
    > А где же архитектор? Ой, у нас тут свобода!

    Свобода у нас тут в том, что пользователи могут пересобрать пакет, если их что-то не устраивает.

     
  • 3.65, Аноним (65), 14:55, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    они как раз инженеры, и поэтому понимают, что unix way утилита, которая будет постоянно использоваться в пайплайнах, должна не вычитывать весь stdin в память, а работать по принципу потокового парсера (а-ля sax, но для json), иначе памяти в какой-то момент не хватит (мало ли какого там размера json? может, вообще бесконечный поток?) и упадет весь пайплайн.
     
     
  • 4.93, Neon (??), 16:50, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Знаменитый unix way хорош в теории и полное гавно на практике.
     
     
  • 5.104, Аноним (65), 17:29, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    У него есть своя область применения, которая ограничена.

    Да, какой-нибудь MTA, написанный по unix way (qmail) был хорош в 1995-м по тем временам и тем нагрузкам, но сейчас, на нынешних масштабах, быстро сдохнет от тупо количества контекст-свитчей, там где решение, выстроенное вокруг epoll и тредов, даже проц не начнет грузить.

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

     
     
  • 6.116, Аноним (116), 21:30, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А почему контекст свич оказался таким дорогим
    Может вернуть шедулер обратно?
     
  • 4.125, Аноним (118), 22:07, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Но при чём тут malloc? Выделил один раз фиксированный буфер (на стеке или в куче), наполняй частями и обрабатывай.
     
  • 2.16, Аноним (16), 13:12, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Вот это часть работы, какую бы выполняли "майнтайнеры" пакетов, будь они хоть немного инженерами.

    Очевидно, что цель не скорость.

    Какая именно можно рассуждать, но все будут догадки.

    Меня же в этих тестах смущают сборки gcc с флагами по умолчанию, а clang нет.

    Что говорит или о предвзятости делающего данные тесты или о заказе.

    А в таком случае лучше их просто игнорировать.

     
     
  • 3.30, Аноним (-), 13:27, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    ага, llvm - почему именно 18, хотя уже 20 с хотфиксом есть, на момент. gcc - версия вообще не указана
     
  • 3.43, n00by (ok), 13:56, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Автор честно пишет о предвзятости "let's rebuild the program with my favorite compiler". Так что игнорировать лучше не его результаты. ;)
     
     
  • 4.117, Аноним (117), 21:33, 19/03/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 3.106, Аноним (106), 17:43, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вы б лучше призадумались почему убунтовские инженеры такие криворукие, что собрали с флагами хуже дефолтовых GCC
     
  • 2.22, 11 (?), 13:17, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    С добрым утром! Лет 10 уже никто не заморачивается на какие либо оптимизации, в играх и любом другом ПО, зачем если хуанг выпускает карты с дурным ценником и дорисовкой кадров, вон китайцы за миску риса посрамили дипсиком всю индустрию, логично предположить что если таки закон мура наконец таки умер, следущие лет 10 будут как раз тем и заниматься - оптимизацией, ну а если нет то нет)) (не будут)..

    Кто сейчас смотрит на производительность софта и выбирает, скажем архиватор по этому критерию, да никто, кто сидел на винраре так на нем и сидит, важнее удобство. Тут же много топителей-за-раст, кто там про производительность вспоминает, пофиг типа, так что даже не на втором месте в списке критериев.

     
     
  • 3.44, n00by (ok), 13:57, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это ничего не меняет, "а там негров линчуют" -- не оправдание.
     
     
  • 4.54, 11 (?), 14:28, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    и "да" и "нет", кривая распределения всегда одна, и если на одном конце линчуют негров, то на другом будут обязательно ходить в церковь по воскресениям, ой так это там же..ну не важно. Важно что в айти вошло очень много народу, и большая их часть ремеслиники, потому что бизнесу так надо не оптимизировать, а хайповать, не искать алгоритмы снижения потребления памяти, а джуна заставить выполнять работу милда, так чтобы не сломал ничего, а памяти докупить можно, ей пенсию платить не надо и в декрет она не уйдет. Было время когда в IT были первопроходцы, но прошло и не вернется, и ничего с этим уже не поделать.
     
     
  • 5.66, Аноним (-), 14:56, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > потому что бизнесу так надо не оптимизировать, а хайповать

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

    Никто не будет тратить человекочасы ради ковыряния в байтиках потому что так захотелось.
    Предворительная оптимизация - это зло.

    > Было время когда в IT были первопроходцы

    Угу, отлично что время какиров-6ыdloкодеров прошло.

     
  • 5.82, Аноним (-), 16:11, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Было время когда в IT были первопроходцы, но прошло и не вернется, и ничего с этим уже не поделать.

    Это те самые первопроходцы, которые придумали сэкономить битик и выпрограммировали null-terminated строки?
    Которые практически сразу начали так стрелять по ногам и опам, что эту штуку назвали "the most expensive one-byte mistake"


     
     
  • 6.85, Аноним (85), 16:26, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Пустой популизм от гуманитариев. Asciiz вполне себе нормальное решение, прекрасно ложащегося на концепцию взаимодействия с машиной.
     
     
  • 7.99, Аноним (-), 17:14, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Пустой популизм от гуманитариев.

    Вот только фраза это пренадлежит Poul-Henning Kamp, одному из разработчиков FreeBSD с бородатых годов. И кто-кто, а он точно написал достаточно кода на си чтобы такое говорить.

    > прекрасно ложащегося на концепцию взаимодействия с машиной.

    С какой машиной?)) PDP-10? Ну так они немного вымерли.
    А сейчас это уродливый костыль, которые не только тормозной (или считай размер за O(n), или таскай его с собой), но и создающий кучу проблем при подсчете размеров буфера, при декодировании во что-то отличное от ASCII, да и просто захламляя код вынужденными проверками и подсчетами.

     
     
  • 8.105, Аноним (85), 17:40, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    В си нет строк или строчного типа, так какие могут быть претензии И если бы раз... текст свёрнут, показать
     
     
  • 9.107, Аноним (-), 17:55, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Строк нет, а string h есть Ну и сам термин string используется в стандарте ... текст свёрнут, показать
     
  • 6.89, 11 (?), 16:33, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А ты прикинь, было время когда машины уже были, а правил дорожного движения не было, а еще было время когда торий в зубную пасту пихали, т.к. он отлично убивает бактерии, а еще лечили ртутью и посуду из свинца делали, че вы доколупались до указателей, дибилу и стакана воды хватит захлебнуться, так че теперь стаканы запрещать или воду.
     
     
  • 7.100, Аноним (-), 17:15, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > так че теперь стаканы запрещать или воду.

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

    > че вы доколупались до указателей

    Может после десятков тысяч однотипных сишных уязвимостей настал момент разрешить использоваться "по спец. разрешениям"? Или ты из тех, кто скучает по радиевой воде и гepычу в средствах от кашля?

     
     
  • 8.108, 11 (?), 19:14, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Я робот смотрел может книжку читал, хотя куда тебе 171 Вы не можете быть до... текст свёрнут, показать
     
  • 3.62, anonizmus (?), 14:48, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вот ради ускорения то и можно было бы некоторые вещи переписать на Rust. Как раз подобные утилитки, написанные на питоне или руби каком-нибудь.
     
     
  • 4.87, _ (??), 16:29, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Не волнуйся - наверняка уже кто то __начал__ переписывать!
    Скоро на всех новостных площадках ... :)

    PS: А ты знаешь что у раст ещё и безпасТная работа с памятью!? Знай! :)

     
     
  • 5.114, Аноним (114), 20:20, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Только Раст спасёт линукс! Плюсы совсем ни о чём с их STL, а сишка - язычок из 70-х годов!
     
  • 2.34, Аноним (34), 13:31, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Замена аллокатора — не то, чем должен заниматься майнтейнер пакета. Такое решение должно приниматься на уровне всего дистрибутива, и после куда более масштабных изысканий.
     
     
  • 3.46, n00by (ok), 14:02, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Да, хорошо бы автоматизировать это дело, собрать статистику. Но это совершенно неподъёмная для майнтайнеров задача, а других то и нет.
     
     
  • 4.51, Аноним (50), 14:11, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Да, хорошо бы автоматизировать это дело, собрать статистику. Но это совершенно неподъёмная
    > для майнтайнеров задача, а других то и нет.

    Ты же первый начнёшь визжать о сборе телеметрии и свободе в опасносте.

     
     
  • 5.69, Аноним (7), 15:11, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Сбор телеметрии ненужен, нужно проведение множества тестов на стендовом железе. Учитесь у Форониксов. Они сами всё тестят и меряют без всякой телеметрии.
     
  • 3.81, Andrey (??), 16:08, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Такое решение должно приниматься разработчиками программы, а не мейнтейнерами. Сдаётся мне, что этот jq писался как утилитка для некритичных к скорости сценариев применения. Вот и оставили системный glibc malloc(), как у почти всех.
     
  • 2.126, Аноним (118), 22:11, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Подбирать ключи оптимизирующего компилятора для своего кода - это задача разработчика, а не сопроводителя. Любой "хоть немного инженер" это знает.
     

  • 1.11, Вася Пупкин (?), 13:09, 19/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А на маленьких жсонах че? в два раза дольше?
     
     
  • 2.112, пп (?), 20:10, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    хороший вопрос, помнится на i7 c 16 гб озу, yt-dlp который на питоне кажись 11 секунд обрабатывал команду --help
     

  • 1.12, Andrey (??), 13:09, 19/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Классический cherry-picking
     
  • 1.14, НяшМяш (ok), 13:11, 19/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    mimalloc очень годный аллокатор, пусть и майкрософтом писаный. В одном проекте удалось повысить производительность почти в 4 раза без изменения кода (тулза похожая на jq, но для xml). А уж LTO так вообще должен быть флагом по-умолчанию для боевых сборок.
     
     
  • 2.31, Жироватт (ok), 13:27, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Сколько мегабайт телеметрии отправляет при сборке?
    Какой канал нужен для телеметрии при использовании софта с этим аллоком?
     
  • 2.32, Аноним (-), 13:29, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    thin?
     
  • 2.47, n00by (ok), 14:05, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Майнтайнеры боятся LTO - у них из-за этого что-то там однажды упало. Но автора ПО не пускают, всё должно быть в репозитории!
     
     
  • 3.127, Аноним (118), 22:19, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Всё верно. У сопроводителей дистрибутивов накоплен колоссальный опыт сборки ПО. И есть моральная ответственность перед пользователями их сборок. А у крикуна с опеннета ни опыта, ни ответственности, только ценное мнение.
     
  • 2.119, Аноним (116), 21:36, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Если всякие рандомизации и гуард пейджы отключить наверное маллок не будет так отставать. А главное ещё какие флаг были задействованы в маллоке при сравнение.
    В тесте много допущений. Значит не зачёт.
     

  • 1.15, Аноним (85), 13:12, 19/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    С O3 и PGO уже лет 10 jq собираю, гцц правда. Без PGO билд шлангом в некоторых применениях быстрее, обычный O3 у гцц тормозит сильно. Производительность гццшного пго билда с шлангом не удалось получить никакими ухищрениями. Замена malloc бомба замедленного действия. Это недостойно новостей и/или обсуждения, разве что рубрика "я познаю мир".
     
  • 1.17, Аноним (17), 13:12, 19/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    лол, а в чём новость?
     
     
  • 2.20, Аноним (-), 13:14, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    "Если включать оптимизации, то программа работает быстрее"
    Неужели не ясно?))

    Но ты наверное прав, это скорее новость ради новости

     
  • 2.21, Соль земли (?), 13:16, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Много кто пересобирает Gentoo для роста производительности, но не все делают из этого оформленный эксперимент.
     
     
  • 3.23, Аноним (85), 13:18, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Ещё никто не получил роста производительности после пересборки Gentoo. Кто эти многие?
     
     
  • 4.36, Аноним (10), 13:32, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Излишнее обобщение практически всегда ложно. Люди, слишком категорично заявляющие "ВСЕ" и "НИКТО", не приводя при этом ни какого обоснования, автоматически выставляют себя клоунами. К сожалению очень часто вижу таких в современных СМИ.
     
     
  • 5.39, Аноним (85), 13:38, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Некоторые вещи являются абсолютной истиной. А что там себе думают обыватели не имеет никакого значения.
     
     
  • 6.73, Аноним (7), 15:32, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Абсолютная истина бывает только у верящих в Абсолют. А это разные конфессии.
     
  • 5.98, Аноним (96), 17:09, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Никто не ступал на поверхность Марса.

    Все люди живут на планете Земля.

    Никто за все годы существования Генту не смог показать выгоды от пересборки.

    Как там шаблон, не трещит ещё?

     
  • 4.111, 12yoexpert (ok), 20:07, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >  Ещё никто не получил роста производительности после пересборки Gentoo. Кто эти многие?

    гентушникам нафиг не упёрлось проводить такие эксперименты, потому что у них всё летает даже по сравнению с арчем, а тратить время на доказательства для маленьких неосиляторов, которые кроме убунты ничего не видели, просто нет смысла

     
     
  • 5.113, Аноним (114), 20:11, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    А зачем рачерам обогревать атмосферу, коньпеляя всё как в генте? Я пользуюсь всегда дебом, просто интересно.
     
  • 5.115, Аноним (85), 20:48, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да, это сказки неофитов Не, ну я по фану держал system-wide lto graphite лет мн... большой текст свёрнут, показать
     

  • 1.24, Аноним (24), 13:19, 19/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >-O3

    Спасибо, кэп. Если бы он собирался с помощью CMake, то нужные настройки бы из коробки шли.

     
  • 1.25, Аноним (24), 13:21, 19/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И да, лучший оптимизатор среди опенсорсных компиляторов уже какое-то время у clang. Он даже z3 под капотом использует.
     
  • 1.33, myster (ok), 13:31, 19/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Они просто его еще в Snap не успели засунуть, он сразу хоронит любые оптимизации. Snap это не контейнеризация в привычном понимании, это жутчайшая технология по замедлению и добавлению глюков в программы.
     
  • 1.37, Андрей (??), 13:35, 19/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Когда уже дебиан можно будет переписать через нейронку на раст. Недавно смотрел свои старые виртуалки и оказывается винда 7 вполне себе отлично работала с 4 гигами памяти. А мой теперешний дебиан жрет все 8 и говорит, что мало. Про всякие окна я уже не говорю.
     
     
  • 2.48, Аноним (48), 14:07, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    И вправду, ведь на skilfactory skillbox yandex practicum
    skilfactory.com это другое.
    уже предлагают пройти курсы как правильно задать вопрос gpt.
     
  • 2.49, Аноним (49), 14:08, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    с растом все 16 будет жрать
     
     
  • 3.61, Аноним (48), 14:47, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Но если нейронка напишет и оптимизирует, так что это можно запускать на любом железе то это хорошо.
    Хотя это же мешает творчеству людей, или оптимизация.
     
  • 3.68, Аноним (7), 15:07, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Зато безопастно жрать.
     
  • 2.55, wd (?), 14:28, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    однажды я w2003 datacenter edition загрузил на 16 метрах оперативы и даже не сразу это заметил
     
  • 2.64, anonizmus (?), 14:52, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Что такое "Debian жрёт"?
    Почему у меня на виртуалках Debian столько не жрёт?
    Что конкретно, относящееся к ОС жрёт память? Сдаётся мне всё дело в браузерах, которые год от года всё больше требуют памяти по умолчанию для хотя бы сколь-нибудь приличной работы.
     
     
  • 3.90, Аноним (48), 16:40, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    В этом ты прав, запустить windows, или любой gnome, я могу сейчас на практически любом ноутбуке.
    Но стоит запустить браузер.
     
  • 2.86, Аноним (86), 16:28, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Так как перепишешь - все 64 затребует. Ты забыл, что такое Rust? Это статическая линковка.
     

  • 1.38, Аноним (34), 13:35, 19/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Пересборка в Clang 18 с уровнем оптимизации"-O3", включением оптимизации на этапе связывания ("-flto") и отключением отладочной информации ("-DNDEBUG") привела к ускорению на 20%.

    А в GCC с теми же опциями? А вклад каждой опции по отдельности посчитать?

     
  • 1.52, Аноним (52), 14:15, 19/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Пользователи Ubuntu заново изобретают Gentoo и LFS
     
     
  • 2.72, Аноним (72), 15:20, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Потом будут удивляться рандомным багам из-за -О3 и распухшим бинарям.
     
     
  • 3.88, пух (??), 16:33, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    ой-ой, кто-то начитался новостей ранее и решил зайти за умного)
     

  • 1.53, Михаил (??), 14:16, 19/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Народ, может кто-нибудь объяснить, почему LD_PRELOAD работает настолько хуже прямой линковки?
     
     
  • 2.56, Аноним (85), 14:29, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Сдампи оба варианта да сравни.
     
  • 2.59, Аноним (59), 14:39, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    на сколько хуже ?
     

  • 1.83, Ivan_83 (ok), 16:13, 19/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В таких случаях надо смотреть в код, может и не надо там так много malloc()/free() на самом деле дёргать.
     
  • 1.92, Аноним (92), 16:49, 19/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ок, оно стало быстрее, а что по потреблению памяти?
     
  • 1.94, Аноним (114), 16:52, 19/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кеды будут оптимизированы или нет? А jq это маленькая утилитка, почти хэловорд.
     
  • 1.103, freehck (ok), 17:26, 19/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это что же, теперь на опеннете в главные новости приемлемо пихать даже на скорую руку набросанные статьи каких-то ноунеймов, запостивших свои личные измышления на гитхаб? Это сколько человеческого времени впустую потрачено только что было. )

    В общем, новость ни о чём. Да, это правда, что есть много разных аллокаторов, но в базу стабильных дистрибутивов, таких как Debian (и следовательно Ubuntu) идут только проверенные и надёжные. Поэтому ничего удивительного, что в дистрибутиве используется glibc malloc, а пересборка с относительно молодым mimalloc даёт заметный прирост производительности. Однако замена дефолтного аллокатора -- это изменение весьма масштабное, требующее всестороннего исследования, которого пока никто не проводил. И именно поэтому mimalloc не будет в ближайшем будущем взят в качестве дефолта. Потому что задача мейнтейнеров -- обеспечение стабильной работоты дистрибутива.

    Так что исследователь конечно молодец, и мы можем порадоваться за то, что он набирается опыта. Однако делать из этого новость -- предприятие крайне сомнительное. Все, кто интересовался вопросом, и так это знали. А общественность, судя по комментариям, явно не понимает, о чём прочитала.

     

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



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

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