Профиль: Аноним (вход | регистрация) неRU opennet.me  
OpenNET

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



"Опубликована библиотека управления памятью jemalloc 5.3"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Опубликована библиотека управления памятью jemalloc 5.3"  +/
Сообщение от opennews (?), 18-Сен-26, 22:16 
Представлен релиз библиотеки управления памятью jemalloc 5.4.0, предлагающей альтернативную реализацию функций malloc, оптимизированную для снижения фрагментации и работы на многопроцессорных системах. Для решения проблем с блокировками на многоядерных системах в jemalloc для каждого ядра CPU используется своя изолированная область распределения памяти, что позволяет добиться  линейной масштабируемости при росте числа потоков...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=66304

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

3. Сообщение от Ivan_83 (ok), 18-Сен-26, 22:33   +13 +/
Ни одной буквы о том как изменилась производительность.
Подозреваю что там никаких улучшений нет уже лет 10, а автор перевёл его в архив потому что делать там больше нечего, всё и так прекрано работает.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #5, #15, #21, #70

5. Сообщение от Аноним (5), 18-Сен-26, 22:41   +2 +/
Потому что mimalloc быстрее и эффективнее, конкурировать с ним пустое дело. Сабж позволяет решать специфические задачи специфического оборудования. В кластерах, да. Если рассматривать сабж на примере жырнолиса, можно ему зажать пиковую память, но тогда тормозит очень сильно. Почему каждые 3 секунды выделяет и удаляет по гигабайту памяти на твиче, никто так и не объяснил. Иногда просто начинает течь. Если поменять на mimalloc (требует перекомпиляция), не течёт.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #9, #12, #13, #14

8. Сообщение от Аноним (8), 18-Сен-26, 23:33   –6 +/
Ненужно. Если требуется специальное управление памятью, то сам напишу. Функциями ос никто ещё пользоваться не запрещал, не все правда про них знают почему-то.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #19, #40

9. Сообщение от Аноним (9), 18-Сен-26, 23:47   +6 +/
> Потому что mimalloc быстрее и эффективнее

Только память освобождать не умеет, лол.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #63

12. Сообщение от вымя (?), 19-Сен-26, 00:20   +2 +/
> mimalloc
> конкурировать с ним пустое дело

...по части багов. В одном только solvespace с ним постоянная возня и необходимость прибивать конкретные версии:

> Confirmed that going back to the vendored mimalloc fixes it
> This is fixed in v2.2.4, but we unfortunately can't use it due to another issue (microsoft/mimalloc#1124), so we have to downgrade for now until it is fixed.
> mimalloc has been the least reliable dependency

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #58

13. Сообщение от Ivan_83 (ok), 19-Сен-26, 00:24   +2 +/
Без понятия как там быстрее или нет mimalloc, я не замечал чтобы у меня что либо тормозило.
Нормально написанный софт аллокатор лишний раз не дёргает.
В случае браузера - возможно, там же джава внутри может какой угодно какакод запускать.

Лису я тоже память на уровне системы ограничил, но так чтобы он меня часто не беспокоил своим перееданием и тормозами.
Твич не юзал, вероятно какахокодеры на жабаскрипте там что то учудили.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #18, #23

14. Сообщение от Ivan_83 (ok), 19-Сен-26, 00:29   +4 +/
Я как бы целом имел ввиду что аллокатору развиватся особо некуда.

Один раз выбрали стратегию, выбрали свой баланс и всё.
За все годы разве что huge pages отрасли и ещё очень по мелочи всякие флаги для mmap(), и sbrk() выкинули. На этом всё развитие и кончается. Раз в 5 лет только поглядывать что по мелочи подкорректировать под текущие стандарты языка С, и специфики системы.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

15. Сообщение от вымя (?), 19-Сен-26, 00:31   +2 +/
> Ни одной буквы о том как изменилась производительность.
> This release contains over 160 commits, focusing on the technical debts cleaning including refactorings, bug fixes, test coverage improvement, and option cleanups.

Все ускорения они ещё в 5.3 обещали. Но смысла никакого верить красивым чиселкам нет, надо тестировать каждое приложение отдельно, потому что паттерн выделения памяти у всех разный. Бывает даже так:

> Using jemalloc as Ruby’s default is a bit problematic. There was a heated discussion in the Ruby bug tracker about this, but in the end no decision was made. The main issue raised is the fact that memory usage only reduces when using jemalloc 3; memory usage is still high when using jemalloc 5. Nobody knows why, so that makes the choice of defaulting to jemalloc very dodgy.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #17

17. Сообщение от Сладкая булочка (?), 19-Сен-26, 01:51   –2 +/
> потому что паттерн выделения памяти у всех разный.

Нужен адаптивный аллокатор с ЫЫ.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #22

18. Сообщение от Сладкая булочка (?), 19-Сен-26, 01:53   +5 +/
> вероятно какахокодеры на жабаскрипте там что то учудили

Проблемы негров ширифа не волнуют или зачем в языке с гц думать об аллокациях? Вот они и не думают.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13

19. Сообщение от Абра (?), 19-Сен-26, 04:51   –1 +/
А после таких деятелей месяцами ловим случайные мютексы, потому что не научились читать документацию до конца...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #35

21. Сообщение от Аноним (22), 19-Сен-26, 05:52   +3 +/
> Ни одной буквы о том как изменилась производительность.

Там просто нечего улучшать при всём желании

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

22. Сообщение от Аноним (22), 19-Сен-26, 05:55   +1 +/
Тухло с этим. Пока самый лучший результат у Fable 5.1 с оценкой 7% при попытке написать бинарник в машинных кодах без посредника в виде языков программирования. Но начало положено, авось лет через 5 будет что-то внятное (если государства и корпорасты не придушат ИИ).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17

23. Сообщение от timur.davletshin (ok), 19-Сен-26, 07:26   –2 +/
Лиса же и так свой аллокатор использует. Если память не изменяет, то это jemalloc и есть.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13

24. Сообщение от DEF (?), 19-Сен-26, 08:01   –18 +/
Смеялся. C настолько крут, что ему нужна аж целая отдельная библиотека для выделения памяти.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #29, #31, #37, #57, #65, #66

25. Сообщение от Аноним (25), 19-Сен-26, 09:06   +/
Объясните мне простому зачем нужная такая библиотека, если такой механизм предоставляется самой ОС через системные вызовы? Он что типо в обход системных вызовов работает?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #28, #30, #32, #39, #64

28. Сообщение от Аноним (29), 19-Сен-26, 09:20   +/
Это функционал библиотеки Си, а ОС представляет только функционал POSIX по типу mmap и munmap.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25

29. Сообщение от Аноним (29), 19-Сен-26, 09:22   +6 +/
Любителя Rust видно из далека. Вера в безопасную работу с памятью есть, а знаний работы ОС нет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24 Ответы: #50

30. Сообщение от anonymousI (?), 19-Сен-26, 09:28   +4 +/
То что предоставляет ОС вам очень не понравится.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25

31. Сообщение от Ivan_83 (ok), 19-Сен-26, 09:39   +/
Да как бы можешь в виде .h файла заинлайнить, тебя же никто не заставляет.

Но в целом, судя по коменту, вы похоже из тех кто думает что электричество из розетки берётся а память язык магическим образом у ОС забирает и программе отдаёт %)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24 Ответы: #38, #51

32. Сообщение от Ivan_83 (ok), 19-Сен-26, 09:41   +2 +/
И что же предоставляется самой ОС?
sbrk задепрекейтили, остался только mmap(), минимальная аллокация = PAGE_SIZE = 4кб на AMD64.
Без аллокатора на прямых mmap() мало того что память будет излишне расходоватся так ещё и в сисколы упрётесь в некоторых задачах.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #36

35. Сообщение от Аноним (35), 19-Сен-26, 11:40   +1 +/
Не надо брать кого не попадя.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #79

36. Сообщение от Аноним (35), 19-Сен-26, 11:41   –4 +/
Т.е по-твоему эта "чудная" библиотека работает в обход вызовов ОС. Эксперты опеннета они такие.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32 Ответы: #48, #76

37. Сообщение от Аноним (37), 19-Сен-26, 11:48    Скрыто ботом-модератором+2 +/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24

38. Сообщение от Фембойчик (?), 19-Сен-26, 12:14   +4 +/
> электричество из розетки берётся

Ты смеешь спорить?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31

39. Сообщение от Фембойчик (?), 19-Сен-26, 12:18   +2 +/
Тоже нефига не понял, зачем, если в стандартной библиотеке уже все есть. Правда я не сишник и вообще не погромист.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #46, #75, #77

40. Сообщение от Фембойчик (?), 19-Сен-26, 12:31   +2 +/
> специальное управление памятью

Это как, а главное зачем?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #41

41. Сообщение от Аноним (41), 19-Сен-26, 13:08   –2 +/
Я понимаю что ты не настоящий сварщик, но почитай немного про кеш, выравнивание, доступ к памяти и тп и удивись насколько можно убыстрить программу просто грамотно работая с памятью.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #44

44. Сообщение от Аноним (22), 19-Сен-26, 13:17   +2 +/
> убыстрить программу

Не стоит оно того, ради "убыстрения" на 0.01%. Лучше просто купить новое железо.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #41 Ответы: #47

46. Сообщение от Аноним (47), 19-Сен-26, 14:32   +/
Потому что ты не знаешь как это всё работает, поэтому и не понял.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39

47. Сообщение от Аноним (47), 19-Сен-26, 14:33   +/
Цифры у тебя конечно же высосаны.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44 Ответы: #49

48. Сообщение от Аноним (49), 19-Сен-26, 15:24   +1 +/
> Эксперты опеннета они такие.

Особенно в чтении этим-самым-местом. Он тебе все правильно описал. В проектах чуть больше laba3.c ты будешь неизменно переизобретать вариации этой самой "чудной" библиотеки, причем со всеми граблями, грабельками и граблищами (многопоточность передает привет).
Но конечно, вариант что все вокруг д'Биллы и неосиляторы и лишь ты - непризнанный гений, нельзя совсем уж исключать, да 🙄

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36

49. Сообщение от Аноним (49), 19-Сен-26, 15:33   +/
> Цифры у тебя конечно же высосаны.

То ли дело "цифры" в "насколько", ога. Кстати, очередной (к)експерт не в курсе, что malloc в современных либах обычно отдает уже выровненную память (а если нужно, то можно и запросить: valloc, posix_memalloc, aligned_alloc) ...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47 Ответы: #52

50. Сообщение от DEF (?), 19-Сен-26, 16:28   –1 +/
У тебя есть знания ОС? Покажи свои коммиты в проект любой ОС.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29 Ответы: #53

51. Сообщение от DEF (?), 19-Сен-26, 16:37   –4 +/
Зачем я должен инлайнить лишний .h файл какой-то либы, которая не делает ничего, кроме как выделяет память? Выделение памяти - это стандартная, вшитая в язык операция. Если C не способен нормально выделить память своими собственными средствами без посторонних либ - его место на свалке истории.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31 Ответы: #55, #61, #74

52. Сообщение от Аноним (8), 19-Сен-26, 17:04   +/
Дурачок ты, ии тебе ответ подсказал, но смысла ты не понимаешь того что написал
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49 Ответы: #54

53. Сообщение от Аноним (29), 19-Сен-26, 17:20   +/
>У тебя есть знания ОС?

Есть.
>Покажи свои коммиты в проект любой ОС.

Не покажу, не хочу спойлерить.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50

54. Сообщение от Аноним (49), 19-Сен-26, 17:30   +1 +/
> Дурачок ты, ии тебе ответ подсказал

Теперь ясно, откуда взял свою (к)экспертизу 🙄
> но смысла ты не понимаешь того что написал

Ну куда уж мне, велосипедившему в (м)асме, да с таблицей таймингов и интеловским 5-томником "IA-Software Developer's Manual" до очередного непризнанного опеннетного гения, который просто спросил ии 🤣

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52

55. Сообщение от Аноним (29), 19-Сен-26, 17:31   +/
Хотя бы нейронку спросили бы, чем писать такое. ОС выделяет страницу памяти, с которой уже работает аллокатор стандартной библиотеки, когда программист вызывает malloc.
>Выделение памяти - это стандартная, вшитая в язык операция.

Попробуйте в Rust флаг no_std, вы будете в шоке.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51

57. Сообщение от Сладкая булочка (?), 19-Сен-26, 18:49   –1 +/
> C настолько крут, что ему нужна аж целая отдельная библиотека для выделения памяти.

...которую используют в расте

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24

58. Сообщение от Аноним (58), 19-Сен-26, 19:13   +/
> В одном только solvespace с ним постоянная возня

А им-то зачем нестандартный malloc, для wasm что ли?
Как тогда всё остальное emscripten собирает, так же через жопу?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

61. Сообщение от Ivan_83 (ok), 20-Сен-26, 05:58   +/
С это вам не модные языки со злой гопожой или ещё какой фигнёй.
Тут можно почти всё переопределить/заменить своим.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51

63. Сообщение от нах. (?), 20-Сен-26, 08:35   +/
>> Потому что mimalloc быстрее и эффективнее
> Только память освобождать не умеет, лол.

ну вот же ж - быстро и эффективно!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #78

64. Сообщение от ИмяХ (ok), 20-Сен-26, 09:57   +1 +/
>>механизм предоставляется самой ОС

Ну а ОС, конечно же, сделана из магии, а не написана на языке программирования.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25

65. Сообщение от Аноним (37), 20-Сен-26, 11:54   +/
Нет, не нужна. Можешь sbrk()'ем двигать, можешь mmap'ить. Зачем тебе библиотека для этого?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24 Ответы: #83

66. Сообщение от warlock66613email (ok), 20-Сен-26, 20:53   +/
Эта целая отдельная библиотека была глобальным аллокатором в Rust и перестала быть таковым не потому, что стала не нужна, а потому что повилась возможность кастомизации глобального аллокатора и возможность оформить её как и положено — как подключаемую библиотеку.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24

69. Сообщение от Sm0ke85 (ok), 21-Сен-26, 07:20   –2 +/
>Изначально библиотека была разработана для FreeBSD и используется в данной ОС по умолчанию с 2005 года. Код библиотеки написан на Си и распространяется под лицензией BSD.

Как додумаются до ГПЛ - пусть приходят, а так "Ненужна"...

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #71

70. Сообщение от onanim (?), 21-Сен-26, 09:48   +/
очень давно использовал, версии 2.х превращали тележку в ракету, начиная с вроде бы, точно уже не помню, версии 3.1, jemalloc сломали и она стала такой же медленной, как обычный malloc. недавно сравнивал дефолтную дебиановску 5.3 с какой-то 3.х, самой последней которая конпельнулась, разницы в производительности не заметил. 2.х в свежем дебиане уже не конпеляются.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

71. Сообщение от 1 (??), 21-Сен-26, 10:07   +/
Перелицензируй под GPL - делов-то. Лицензия позволяет.
И что, сразу станет "Нужна" ?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69 Ответы: #72

72. Сообщение от Sm0ke85 (ok), 21-Сен-26, 12:07   +/
>Перелицензируй под GPL - делов-то. Лицензия позволяет.

Ага, оно ж так обычно и происходит... [сарказм]

>И что, сразу станет "Нужна" ?

да

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #71 Ответы: #81

74. Сообщение от Аноним (74), 21-Сен-26, 12:31   +/
Назови хоть один высокоуровневый язык, который под капотом не использует библиотеки для выделения памяти
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51 Ответы: #80

75. Сообщение от Аноним (74), 21-Сен-26, 12:33   +/
Потому что версия в стандартной библиотеке рассчитана под одни условия эксплуатации и виды нагрузки (как правило усредненные), а эта - под другие, уже более специфические условия
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39

76. Сообщение от Аноним (76), 21-Сен-26, 13:43   +/
> Т.е по-твоему эта "чудная" библиотека работает в обход вызовов ОС.

Она разок дергает mmap чтобы запросить большой кусок памяти у ОС, а потом нарезает из того куска кусочки поменьше, которые просит твоя программа через вызов malloc, вот и всё.
Это если говорить очень упрощенно и опустить существование арен и многопоточности.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36

77. Сообщение от Аноним (76), 21-Сен-26, 13:49   +/
В glibc стандартный аллокатор достаточно медленный, особенно на освобождении памяти через вызов free.
А так "если в стандартной библиотеке уже все есть" в таком случае лучше всем перелезть на FreeBSD, там jemalloc действительно уже есть по умолчанию в libc и во многих кейсах он лучше того, что в glibc.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39

78. Сообщение от _hide_ (ok), 21-Сен-26, 15:19   +/
Тут можно сказать только одно: из-за того, что первоначально цель была не быстро выделить, а выделить как можно меньше, то никакой непрямой адресации предусмотрено не было. Сейчас же, релокация (дефрагментация) и оптимизация можно реализовать только существенно замедлив из-за неконтролируемых блокировок в момент релокации.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #63

79. Сообщение от _hide_ (ok), 21-Сен-26, 15:24   +/
Ну для таких есть Раст.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35

80. Сообщение от Аноним (80), 21-Сен-26, 15:47    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #74

81. Сообщение от Аноним (80), 21-Сен-26, 15:51    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72 Ответы: #82

82. Сообщение от Sm0ke85 (ok), 22-Сен-26, 07:26   +/
>Не припомню чтобы из БЗДы делали GPL. А вот когда из пермиссивки делают проприетарь, происходит сплошь и рядом.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #81

83. Сообщение от фф (?), 22-Сен-26, 12:42   +/
как будто mmap не из библиотеки
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




XSQUARE
Inferno Solutions
Hosting by Hoster.ru
Хоcтинг:

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