LINUX.ORG.RU
 
stave

Некоторые новшевства в glibc 2.10


0

0

Ульрих Дреппер (Ulrich Drepper), довольно известный разработчик из Red Hat, описал некоторые подробности о новшествах в glibc 2.10. В частности он затронул: posix 2008, поддержка C++ 201x, улучшения в DNS NSS, использование NSS в libcrypt, расширяемый пользователем формат printf, масштабирование malloc и автоматическое использование оптимизированных функций.

>>> Текст в блоге


[#]  
Manhunt

Re: Некоторые новшевства в glibc 2.10

Спасибо за линк.

*** ()
[#]  
const86

Re: Некоторые новшевства в glibc 2.10

> хак printf

Hook не хак.

***** ()
[#]  

Re: Некоторые новшевства в glibc 2.10

>Некоторые новшевства

Прочитал: некоторые вещества

***** ()
[#]  
Manhunt

Re: Некоторые новшевства в glibc 2.10

Теперь glibc умеет отдавать статистику по malloc в формате XML. Сердце мое трепещет :D

*** ()
[#]  
ikm

Re: Некоторые новшевства в glibc 2.10

Отлично! Побольше бы таких новостей на лоре :)

** ()
[#]  
YesSSS

Re: Некоторые новшевства в glibc 2.10

C++ 0x стал C++ 201x? Фигово однако... =(

*** ()
[#]  
vyv

Re: Некоторые новшевства в glibc 2.10

надеюсь тпереь ГНУтый аллокатор памяти будет нормально работать с фуррифоксом. не надо будет плясать с бубном.

** ()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от YesSSS 18.04.2009 14:05:06  

Re: Некоторые новшевства в glibc 2.10

>C++ 0x стал C++ 201x? Фигово однако... =( Главное чтобы последний 'x' не превратился в девятку...

* ()
[#]  
atrus

Re: Некоторые новшевства в glibc 2.10

Так будет там нормальный менеджер памяти или так и будет каждое приложение свой писать? ;-)

***** ()
[#]  
splinter

Re: Некоторые новшевства в glibc 2.10

сначало подумал о Metallica, выздоравливаю?

***** ()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от atrus 18.04.2009 16:54:54  

Re: Некоторые новшевства в glibc 2.10

Что по вашему нормальный? Потребности у всех разные, если всё впихивать в glibc это знаетели - просто ужас выйдет. А качество как видно повышается, и фичастость увеличивается, стало быть он становится нормальным:) А в реальности разные потребности у людей, совсем разные, так что писать свой кто-то всё равно будет. У меня вот была потребность сделать аналог malloc, но чтобы куча была просто некоторым буфером, а выделяемые участки адресовались не указателями, а индексами. Чтобы буферы можно было сбрасывать в файлы. Ну сделал, но не дай бог подобные или что-либо другое появится в glibc.

* ()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от ixrws 18.04.2009 17:08:31  
atrus

Re: Некоторые новшевства в glibc 2.10

> Что по вашему нормальный?

Х.З. Но за время религиозный войн OOo и Firefox менеджер памяти из glibc не обругал только ленивый.

***** ()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от atrus 18.04.2009 17:31:29  

Re: Некоторые новшевства в glibc 2.10

Ясно, ну это ровным счётом ничего не значит:) Если кому-то было бы действительно нужно, чтобы аллокер glibc работал иначе, за ним бы не заржавело добавить "правильную реализацию":)

* ()
[#]  
gena2x

Re: Некоторые новшевства в glibc 2.10

>новшевства

эээ... исправьте что-ли в заголовке...

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

*** ()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от Manhunt 18.04.2009 13:26:27  
Ramen

Re: Некоторые новшевства в glibc 2.10

>Теперь glibc умеет отдавать статистику по malloc в формате XML
Можно начинать похоронную процессию?

*** ()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от Ramen 18.04.2009 18:58:03  

Re: Некоторые новшевства в glibc 2.10

Зря вы так, мерить потребление и утечки в реальном времени это весьма важно. Другое дело, что для этого можно более удобные механизмы использовать:) Но всё равно это хорошо.

* ()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от ixrws 18.04.2009 19:05:58  
Ramen

Re: Некоторые новшевства в glibc 2.10

>Зря вы так, мерить потребление и утечки в реальном времени это весьма важно.
Да я не говорю, что это не нужно. Просто XML уж _здесь_ ну точно совершенно не к месту.

*** ()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от Ramen 18.04.2009 19:29:46  

Re: Некоторые новшевства в glibc 2.10

Эх, дань моде и стандартизации. Вот скажем зачем в dbus интроспекция не в idl, а на xml ? И тут тоже самое, остаётся лиш смириться:)

* ()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от Ramen 18.04.2009 19:29:46  
cobold

Re: Некоторые новшевства в glibc 2.10

> Да я не говорю, что это не нужно. Просто XML уж _здесь_ ну точно совершенно не к месту.

А Вы по ссылке ходили? С учетом постановки задачи, XML, похоже, наиболее адекватное решение.

** ()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от vyv 18.04.2009 15:22:06  

Re: Некоторые новшевства в glibc 2.10

>надеюсь тпереь ГНУтый аллокатор памяти будет нормально работать с фуррифоксом. не надо будет плясать с бубном.

Ламеры типа тебя будут плясать ВСЕГДА

***## ()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от atrus 18.04.2009 17:31:29  

Re: Некоторые новшевства в glibc 2.10

>Но за время религиозный войн OOo и Firefox менеджер памяти из glibc не обругал только ленивый ЛАМЕР.

fixed

***## ()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от Led 18.04.2009 21:31:42  
Voviandr

Re: Некоторые новшевства в glibc 2.10

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

* ()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от Voviandr 18.04.2009 23:23:54  

Re: Некоторые новшевства в glibc 2.10

4 гига памяти стоят сегодня как грязь. Не попей пива неделю.

***** ()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от Voviandr 18.04.2009 23:23:54  
stave

Re: Некоторые новшевства в glibc 2.10

не замечено. 2 дня аптайм фф, 1 гиг рам, 500 мб занято всего вместе с гномом.

**** ()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от Reset 18.04.2009 23:37:49  
r0mik

Re: Некоторые новшевства в glibc 2.10

> А ff может и все 4 гига скушать после недельной работы.

300 метров сожрал
аптайм 8 days, 18:43
ФФ не перегружал, мля буду!

* ()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от r0mik 19.04.2009 11:34:13  
Reset

Re: Некоторые новшевства в glibc 2.10

Это поведение, естественно, зависит от сайтов, которые смотришь. На тяжелых сайтах с обилием java script'а очень часто он вылезает за гигабайт физической памяти (!), потом закрытие вкладок не помогает, помогает только перезапуск.

***** ()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от Reset 19.04.2009 11:41:57  
madcore

Re: Некоторые новшевства в glibc 2.10

Там, кажется, еще через флеш-плагин может утекать. А так да, если кроме лора никуда не ходить, можно годами не перезапускать.

***** ()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от madcore 19.04.2009 13:25:01  
Voviandr

Re: Некоторые новшевства в glibc 2.10

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

* ()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от Voviandr 18.04.2009 23:23:54  

Re: Некоторые новшевства в glibc 2.10

Подскажу. Написать код для xpcom, который будет отслеживать все выделения памяти и давать статистику утечек, а также давать информацию о потребляемой памяти в реальном времени. Для наиболее чёткого учёта потребления и утечек, нужно везде, где память выделяется, маркировать это явным образом. Так, чтобы отслеживающий код показывал маркеры. Вот тогда буде всё ясно. Какой компонент, при каких условиях и почему потребляет память или банально течёт. И это никоим образом не входит в задачи аллокера, это задача грамотного кода или прослоек. Так что это притензии к мозилле:) PS: все кто сейчас случайно или неслучайно вспомнят про gc и посетуют на то, что он редко используется проектами на С или на С++ - строем идут в биореактор.

* ()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от ixrws 19.04.2009 16:58:03  

Re: Некоторые новшевства в glibc 2.10

> се кто сейчас случайно или неслучайно вспомнят про gc и посетуют на то, что он редко используется проектами на С или на С++ - строем идут в биореактор.

Обоснуй или идешь ты.

()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от tomodachi_ni_narimashou 19.04.2009 17:56:42  

Re: Некоторые новшевства в glibc 2.10

Что я должен обосновать? Зачем людям нужна свобода ? Думаю это давно уже обосновано.

Прочитайте ещё раз мою фразу и поймёте что там написано.

Ну а если требуется пояснение, попытаюсь:)

Так вот, сборщик мусора не является заменой грамотного явного выделения и освобождения памяти, а является решением, которое можно использовать вместо или вместе с явным выделением/высвобождением. Грамотное же выделение и освобождение памяти(а желательно с механизмами отслеживания что где и когда выделялось) не может работать хуже, чем сборщик мусора, так как утечки, задержки и прочие проблемы - исключены.

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

Что до биореактора, то адресовано это было тем, кто очень часто любит учить других как им поступать и что им делать, на чём писать, кого любить и тд.

* ()
[#]  
fractaler

Re: Некоторые новшевства в glibc 2.10

Под вечер прочитал как "Некоторые вещества в glibc 2.10"...

**** ()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от Manhunt 18.04.2009 13:26:27  

Re: Некоторые новшевства в glibc 2.10

> Теперь glibc умеет отдавать статистику по malloc в формате XML

А почему не в pdf или odt?

* ()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от ixrws 18.04.2009 17:08:31  

Re: Некоторые новшевства в glibc 2.10

> У меня вот была потребность сделать аналог malloc, но чтобы куча была просто некоторым буфером, а выделяемые участки адресовались не указателями, а индексами. Чтобы буферы можно было сбрасывать в файлы. Ну сделал, но не дай бог подобные или что-либо другое появится в glibc.

Хе-хе, "арена" ?:) Вот тут сравнительно неплохая рассказка и подборка линков на "нестандартные аллокаторы" http://en.wikipedia.org/wiki/Dynamic_memory_allocation

***** ()
[#]  

Re: Некоторые новшевства в glibc 2.10

жив курилка

***** ()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от AlexM 20.04.2009 4:39:11  

Re: Некоторые новшевства в glibc 2.10

Да нет, там была несколько более сложная реализация. которая позволяла в том числе объединять свободные куски, находящиеся в разных частях кучи. То есть делать дефрагметацию. При этом индексы тоже изменялись, так как в этом буфере всё и хранилось. Правда в силу специфических потребностей так и недовёл аллокер до того состояния, которое бы позволяло его использовать в других проектах:) Дефрагметация работала только с соблюдением чётких правил и тд и тп.

А воообще, я лиш хотел упомянуть, что разные проекты, по разному работающие с памятью, требуют разных подходов к выделению и отслеживанию памяти. Хотя крикуны продолжают кричать про дешевезну памяти, всё же неправильно написаный код съест всю память и неподавится. Жаль что программисты не уделяют достаточно внимания работе с ресурсами.

* ()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от ixrws 19.04.2009 18:32:23  
matumba

Re: Некоторые новшевства в glibc 2.10

> сборщик мусора **не является заменой** грамотного явного выделения и освобождения памяти, а является решением, которое можно использовать **вместо** или вместе с явным выделением/высвобождением.

Сам-то понял, чё пёрнул?

СМ - это более продвинутый механизм работы с памятью, прекрасно работающий для 99% приложений. Он не просто "сам всё собирает", но и меняет саму концепцию работы с памятью - упрощает вплоть до "дай мне кусок, потом делай с ним что хошь". Экономит В РАЗЫ время на отладку, опережая "грамотных" чудиков-распределяльщиков. В результате, даже у не самых продвинутых прогеров улучшается код, полностью исключая ошибки тупого дизайна Си-еблибатеки.

**** ()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от Reset 19.04.2009 11:41:57  
svu

Re: Некоторые новшевства в glibc 2.10

> На тяжелых сайтах с обилием java script'а очень часто он вылезает за гигабайт физической памяти (!),
Вот-вот. На n810 у меня висит весь такой вебдванольный гмыл, денек повисит - и уже вся память сожрана...

***** ()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от ixrws 20.04.2009 12:29:40  
matumba

Re: Некоторые новшевства в glibc 2.10

> Хотя крикуны продолжают кричать про дешевезну памяти, всё же неправильно написаный код съест всю память и неподавится.

От того, что память будет дороже, код магически улучшится чтоль? Проблемы с памятью возникают (в порядке важности) 1) из-за убогости IDE, неспособной подсказать опасные моменты 2) из-за кривого дизайна языка-библиотек, где вручную занимаются низкоуровневой тривиальщиной 3) из-за невнимательного отношения к коду

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

> Жаль что программисты не уделяют достаточно внимания работе с ресурсами.


Ресурс "мозг" куда дороже сраной плашки памяти. Чем дешевле ресурс, тем глупее на нём экономить, тратя дорогие ресурсы. Даже поговорка такая была, в докомпьютерную эру: "Пока пятак искали, на рупь свечек сожгли" - очень хорошо здесь применима.

**** ()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от matumba 20.04.2009 12:56:28  

Re: Некоторые новшевства в glibc 2.10

Ну вот этим мне и нравится лор:)

А теперь господин вам осталось только одно, сёгким движением языка убедить всех перейти скажем на зижарп ага ?:)

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

Как я уже сказал, средств позволяющих 100% гарантировать отсутсвие утечек предостаточно, начиная от контроля, заканчивая прикручиванием автоматической сборки мусора к ручному выделению. То есть если сам забыл, то оно само собралось:)

Непродвинутым кодерам не место в профессии, их дело чистить сортиры, сливать помои, работать ртом и тд. Мы же не будем делать двухструнную гитару с 2мя ладами и автопозиционированием руки ради немузыкантов?

Ну а "тупой дизайн С" по работе с памятью он не тупой, он просто как бэ не мекает - делай так, как хочеш и будет так, как пожелаеш. Хочеш с gc, будет с ним родным, хочеш без - будет без него родного. Тем более что в крупных проектах чистую С библиотеку используют крайне редко в силу разных причин. А вот то, что человек может себе позволить высвобождать ресурсы, когда они ему не нужны _немедленно_ или грамотно перераспределять эти ресурсы, чтобы избежать лишней работы, это весьма пригождается. PS: gc не меняет никакой концепции, бросьте нести чуш. Это ещё одна надстройка для упрощения работы с выделением и высвобождением. Можно так, а можно эдак. Ещё чуток, и будете кричать девелоперс, девелоперс девелопер и забрызгивать слюной. PS2: чего-то проекты подобные mozilla не торопятся переходить на "самоуправствующие" технологии, а всё городят и городят свои велосипеды. Может от того всё таки, что разработчик лучше знает как использовать свои руки и мозг?

* ()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от matumba 20.04.2009 13:04:31  

Re: Некоторые новшевства в glibc 2.10

>Комп должен максимально помогать обнаруживать проблеммные участки, зачем для такой ерунды напрягать мозг прогера??

Какие к чёрту проблемные участки? Управление памятью - это не проблема. Программист знает, когда ему становится нужен объект (переменная, структура). Там он делает malloc или new. Программист знает, когда объект больше не нужен. Там он ставит free или delete. Всё. Родился - жил - умер. Если ты столь ленив, что не хочешь задумываться о том, когда объект больше не нужен - то будь последователен и не задумывайся о времени создания. Слабо?

*** ()
[#] Ответ на: Re: Некоторые новшевства в glibc 2.10 от legolegs 20.04.2009 13:41:45  
Reset

Re: Некоторые новшевства в glibc 2.10

Если free/delete стоит, то это не значит, что он вызовется. Есть много неочевидных случаев. Также не забываем про фрагментацию памяти и про то, что new/malloc в некоторых случаях неэффективны. Поэтому управление памятью это проблема, причем большая, а если вы её не видите, что значит у вас недостаточно опыта.

***** ()
[#]  
beastie

Re: Некоторые новшевства в glibc 2.10

они сломали fgetln(), bastards!

говорила мне мама: не обновляйся до сдачи проэкта...

*** ()