LINUX.ORG.RU

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

 , , ,


0

0

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

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

★★★★★

Проверено: no-dashi ()

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

>Hook не хак.

да, виноват.

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

*посыпает голову пеплом и пинает спелчекер* ><

stave ★★★★★
() автор топика

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

ikm ★★
()

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

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

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

gogi
()

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

atrus ★★★★★
()

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

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

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

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

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

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

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

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

ixrws ★★★
()

>новшевства

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

fixed

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

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

Voviandr
()
Ответ на: комментарий от Reset

Я его могу и за 10 минут в свап загнать. И что?

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

У меня он вообще неделями на работе не вырубается. И ничего, нормально.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ixrws ★★★
()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

Reset ★★★★★
()

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

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

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