The OpenNET Project / Index page

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



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

Оглавление

Выпуск системной библиотеки Glibc 2.35, opennews (ok), 03-Фев-22, (0) [смотреть все]

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


112. "Выпуск системной библиотеки Glibc 2.35"  +/
Сообщение от Michael Shigorinemail (ok), 05-Фев-22, 21:48 
> so никаким образом не уменьшают расходы рамы - это протухший миф.

Неся полную ахинею, Вы не потрудились хоть как-то её обосновать.

Откройте для себя да хотя бы smem(8) -- что забавно, написанный как раз на питоне:

NAME
       smem - Report memory usage with shared memory divided proportionally.

SYNOPSIS
       smem [options]

DESCRIPTION
       smem  reports  physical  memory  usage, taking shared memory pages into
       account.  Unshared memory is reported as the  USS  (Unique  Set  Size).
       Shared  memory  is divided evenly among the processes sharing that mem‐
       ory.  The unshared memory (USS) plus a process's proportion  of  shared
       memory is reported as the PSS (Proportional Set Size).  The USS and PSS
       only include physical memory usage.  They do not  include  memory  that
       has been swapped out to disk.

> "обновлять отдельно либы" - это типичная бездарная несостоятельная чушь.
> Это проблемы всякого бинарного мусора, потому как никакой проблемы
> с обновлением всех программ нет.

Это был каминаут сторонника небинарности вместо логики, что ли?

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

Вы ни разу не в теме, но позволяете себе обобщать чрезмерно.  Зачем?

Кому интересно -- он неправ даже без set-versions имени Лёши Турбина, но неправ в квадрате с ними.

> К тому же, выпил мусорного so и прочего подобного мусора, позволяет
> нормально изолировать программы и вообще уходит какая-либо проблема
> безопасности.

1) нет;
2) нет.

Кому интересно -- см. про chrooted, реализованный в альте более двадцати лет как (а про обновление любимых zlib/libpng, но никак не ограничиваясь ими, все необходимые уроки любители статически линкануться по-быстрому уже могли бы и усвоить -- разумеется, при наличии у них средств усвоения знаний).

PS: и судя по неумению цитировать, стоит задать любимый вопрос к таким: со второго на третий всё уже надёжно-безопасно перетащили, табы с пробелами нигде не икаются?..

Ответить | Правка | К родителю #100 | Наверх | Cообщить модератору

121. "Выпуск системной библиотеки Glibc 2.35"  +/
Сообщение от n00by (ok), 06-Фев-22, 08:04 
>> so никаким образом не уменьшают расходы рамы - это протухший миф.
> Неся полную ахинею, Вы не потрудились хоть как-то её обосновать.
> Откройте для себя да хотя бы smem(8) -- что забавно, написанный как
> раз на питоне:
>
NAME 
>        smem - Report memory usage
> with shared memory divided proportionally.
>

Попробую за него.


#include <iostream>

int main() {
  std::cout << "Hello!";
}


Результирующий исполняемый файл связан с:
libstdc++.so.6 (~2000 килобайт)
libm.so.6 (~700 килобайт)
libgcc_s.so.1 (~90 килобайт)
libc.so.6 (~1500 килобайт)
ld-linux-x86-64.so.2 (~200 килобайт)

Итого, грубо, 4,5 Мегабайт.

Вот тут https://code.google.com/archive/p/ontl со смертью Гуглокода сломалось форматирование, но видно "24.5 Kb exe file".
Пример импортирует только ntdll, значит аналог в Linux вообще может обойтись без библиотек.

То есть разделяемые библиотеки весят как сотня-другая Хелловордов.

---

Второй момент - время инициализации библиотек. Вот я когда-то сравнивал Хелловорд на OCaml (первый вариант - интерпретатор без зависимостей), погрешность измерения зашкаливает, но представление получить можно:

$ time ./microcaml
Hello World!

real 0m0,002s
user 0m0,002s
sys 0m0,001s

Оригинальный интерпретатор:

$ time ocamlrun test/hello
Hello World!

real 0m0,007s
user 0m0,003s
sys 0m0,004s

Скомпилированный в машинный код вариант:

$ time test/hello.elf
Hello World!

real 0m0,005s
user 0m0,001s
sys 0m0,004s

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

130. "Выпуск системной библиотеки Glibc 2.35"  +/
Сообщение от Аноним (100), 07-Фев-22, 13:39 
Эникей, мне вот даже интересно. Ладно, кому интересно - я поясню на методичку этого овоща. Хотя в своём посте сообщил о разнице.

Данный бот-эникей с чего-то решил, что "Итого, грубо, 4,5 Мегабайт." имеет какое-то отношение к реальности. Хотя, на самом деле, оно никакого отношения не имеет. И как уже сказано мною выше - я объяснял почему.


Как пример, если собрать вот это "#include <iostream>" в so, то оно будет весить бесконечность. Ладно, возьмём базовые типы - оно будет весить половину от того, что он там насчитал. Но почему-то данный овощ игнорирует этот факт. Почему? Да, он просто о нём не знает. И почему эти пару мегабайт бинаря не попадают в результирующий файл? Да, эникей - их нет даже в libstdc++. А почему?


Всё очень просто, овощ, 99% из того кода, что написан в iostream и всём том, что он инклюдит ненужно. И как результат этого ненужно - этот код никуда не попадает. Он просто выпиливается.

Таким образом, если выпилить этот so-мусор и заменить на ho, то никаких 4.5мегабайт там не будет. Там будет от силы сотня килобайт и то, практически из которых - это рантайм крестов.

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

133. "Выпуск системной библиотеки Glibc 2.35"  +/
Сообщение от n00by (ok), 07-Фев-22, 14:12 
> Как пример, если собрать вот это "#include <iostream>" в so, то оно
> будет весить бесконечность. Ладно, возьмём базовые типы - оно будет весить
> половину от того, что он там насчитал.

Я правильно понимаю, что ты готов собрать std::cout << "Hello!"; в исполняемый файл без зависимостей и вдвое меньше моих 25 кб, или у тебя ещё продолжается пятница и ты совершенно пьян?

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

134. "Выпуск системной библиотеки Glibc 2.35"  +/
Сообщение от Аноним (100), 07-Фев-22, 15:24 
>> Как пример, если собрать вот это "#include <iostream>" в so, то оно
>> будет весить бесконечность. Ладно, возьмём базовые типы - оно будет весить
>> половину от того, что он там насчитал.
> Я правильно понимаю, что ты готов собрать std::cout << "Hello!"; в исполняемый
> файл без зависимостей и вдвое меньше моих 25 кб, или у
> тебя ещё продолжается пятница и ты совершенно пьян?

Во-первых я не знаю откуда ты родил эту чушь. Во-вторых - это можно сделать, очевидно. Только iostream парашный мне даже трогать лень. Это мусорное дерьмо. Слишком сильно заморачиваться нужно.

А вообще я тебе говорил о том, что iostream хоть огрызок дерьма из си с классами, но даже в нём большая его часть выпиливается, потому что она ho. Поэтому, если бы iosteam был бы реализован полностью через so и линковку, то он бы занимал пару мегабайт. Ну может не пару, но много.

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

137. "Выпуск системной библиотеки Glibc 2.35"  +/
Сообщение от n00by (ok), 07-Фев-22, 17:49 
> Во-вторых - это
> можно сделать, очевидно. Только iostream парашный мне даже трогать лень. Это
> мусорное дерьмо. Слишком сильно заморачиваться нужно.

Смотри, Петка, какая ситуация. Ты пришёл сюда, вывалил некие гипотетические выкладки. Якобы возможно, цитирую #100: "каждая программа будет использовать не просто только нужные ей функции, но эти функции будут адаптированы по месту, заинлайнены и прочее".

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

Если же ты протрезвеешь и внимательно прочтёшь моё сообщение дальше тех цифр, что тебя бомбанули, ты увидишь там ссылку на std::cout << "Hello!", который собран в исполняемый файл размером в 25 кб, без зависимостей и лишних функций, вот как в твоей цитате.

Но есть один нюанс - этот практический результат - мой.

Тебе всё понятно в этом моём сообщении, или опять стоит что-то разжевать?

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

138. "Выпуск системной библиотеки Glibc 2.35"  +/
Сообщение от Аноним (100), 07-Фев-22, 17:59 
>> Во-вторых - это
>> можно сделать, очевидно. Только iostream парашный мне даже трогать лень. Это
>> мусорное дерьмо. Слишком сильно заморачиваться нужно.
> Смотри, Петка, какая ситуация. Ты пришёл сюда, вывалил некие гипотетические выкладки. Якобы
> возможно, цитирую #100: "каждая программа будет использовать не просто только нужные
> ей функции, но эти функции будут адаптированы по месту, заинлайнены и
> прочее".
> Теперь, что бы твои слова были похожи на правду, следует не растопыривать
> пальцы, а показать какие-то практические результаты. Как только я намекнул тебе
> на это, появилось слово "заморачиваться" и "лень", что как бэ намекает.

Нет, дошколёнок. Зачем мне копаться в бездарном дерьме? Я тебя просто пошлю собирать iostream через линковку и ты убежишь плакаться мамки.

Давай попроще, дошколёнок. цпп не предполагает сравнения между какой-либо линковкой, потоу как цпп невозможно линковать. Поэтому ни в каком коде на цпп линковки никогда не было. Никакой. И не будет никогда.

Что ты, эникейская амёба, хочешь мне сообщить и что с чем сравнить? Это невозможно. Идти и переделывать на ho iostream-мусор мне нахрен не уплао. Это мусорное дерьмо, который никто в здравом уме не использует. Мне какая разница?

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

> Если же ты протрезвеешь и внимательно прочтёшь моё сообщение дальше тех цифр,
> что тебя бомбанули, ты увидишь там ссылку на std::cout << "Hello!",
> который собран в исполняемый файл размером в 25 кб, без зависимостей,
> вот как в твоей цитате.
> Но есть один нюанс - этот практический результат - мой.
> Тебе всё понятно в этом моём сообщении, или опять стоит что-то разжевать?

Маня, std::дерьмоcount не может быть собран куда-то ни в одной из существующих stdlib. Даже в libc++ это легаси-дерьмо, на которое всем положить.

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

139. "Выпуск системной библиотеки Glibc 2.35"  +/
Сообщение от n00by (ok), 07-Фев-22, 18:19 
> Зачем мне копаться в бездарном дерьме?

Если ты хочешь, что бы я воспринимал тебе всерьёз, тебе следует не молоть языком, а показать мне, что ты сделал.

> Я тебя просто пошлю
> собирать iostream через линковку и ты убежишь плакаться мамки.

Я уже собрал и  в исходном сообщении дал ссылку, там iostream. 25 кб экзешник без зависимостей. Я третий раз про это пишу. Ты ещё не догнал? Чем ты там лечишься?

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

140. "Выпуск системной библиотеки Glibc 2.35"  +/
Сообщение от n00by (ok), 07-Фев-22, 18:22 
Опс, малость накосячил, вот правильная ссылка https://code.google.com/archive/p/ontl/wikis/HelloWorld.wiki

По поводу битого форматирования - это не ко мне. Я за действия Гугла не отвечаю.

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

123. "Выпуск системной библиотеки Glibc 2.35"  +/
Сообщение от Аноним (123), 06-Фев-22, 12:28 
С какими опциями ALT Linux линкует пакеты, и какие опции компилятора?

Все ли линкуется динамически?

Ответить | Правка | К родителю #112 | Наверх | Cообщить модератору

128. "Выпуск системной библиотеки Glibc 2.35"  +/
Сообщение от Аноним (100), 07-Фев-22, 13:25 
>Неся полную ахинею, Вы не потрудились хоть как-то её обосновать.

Всё было. Непонятно только зачем, зачем эникей пытается со мною спорить?

>Откройте для себя да хотя бы smem(8) -- что забавно, написанный как раз на питоне:

И что же я там увижу? Поподробнее.

>Это был каминаут сторонника небинарности вместо логики, что ли?

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


>Вы ни разу не в теме, но позволяете себе обобщать чрезмерно.  Зачем?

Ни разу ни в теме рандомный эникей. Ну ладно, пусть эникей покажет не-роллинг? Покажет пару диструбутивов? И он так же сможет рассказать почему и зачем с бинарном мусоре нужно версионирование?

Ответить | Правка | К родителю #112 | Наверх | Cообщить модератору

129. "Выпуск системной библиотеки Glibc 2.35"  +/
Сообщение от Аноним (100), 07-Фев-22, 13:30 
Ладно, мне лень спорить с тутошними эникеями блаженными. Ставлю мат в два хода.


>уроки любители статически линкануться

Задача эникею номер раз - сообще о том, где я говорил о какой-то "статически линковаться"? Бот заучил пару методичек и пытается подменять мои тезсы?


>Кому интересно -- см. про chrooted, реализованный в альте более двадцати лет как

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

Ответить | Правка | К родителю #112 | Наверх | Cообщить модератору

131. "Выпуск системной библиотеки Glibc 2.35"  +/
Сообщение от Аноним (100), 07-Фев-22, 13:57 
Заодно объясню людям, почему эти эникей-овощи несут херню в контекте той же скорости запуска. На самом деле so-мусор -это такое же дерьмо, как и веб. Сделано такими же овощами.


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

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

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

Эта инициализация может дёргать код из разных мест сошки, т.е. это опять сики.


Далее нужно запустить код в этой сошке. Ситуация такая же как в случае с инициализацией. Условный принтф может валяться где угодно и, очевидно, он не будет загружен в память. Там будут миллионы разного уровня кешмиссов. И с этим ничего не сделать.


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


И проблема даже не в том, что там 10 мегабайт - проблема в том, что эти мегабайты раскиданы по диску. А диск не может в параллельное чтение. ssd может. Далее вы уже знаете.


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


Поэтому нужно загружать только код нужных функций, а как это сделать? Загрузить всю сошкоу нельзя. И прифетч здесь тоже не работает. Т.е. мы не знаем какие функции из сошки будет юзать программа до её запуска. И пока исполнение, условно, не дойдёт до вызова - префетч не сработает.

В случае же с нормально собранной программой - в её коде лежит только только то, что нужно. При этом зачастую оно ещё и заинлайнено.

Ответить | Правка | К родителю #112 | Наверх | Cообщить модератору

132. "Выпуск системной библиотеки Glibc 2.35"  +/
Сообщение от Аноним (100), 07-Фев-22, 14:00 
Кстати, ещё одно. Дело в том, что любая сошка - это тысячи косвенных вызовов. А данный овощ у нас бегает и рассказывает про эльбрус. И если суперскаляр ещё хоть как-то может компенсировать жопу вызываемую сошками, то вот эльбрус нет.

Пусть данный овощ подойдёт и спросит у дядей про so, косвернные вызовы и прочее. Т.е. данный овощ не только маздайщик, но и засланец интела. Хотя шифруется он под других.

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

Ответить | Правка | К родителю #112 | Наверх | Cообщить модератору

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

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




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

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