The OpenNET Project / Index page

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



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

Оглавление

Ричарда Столлман опубликовал книгу по языку Си и расширениям GNU, opennews (ok), 07-Сен-22, (0) [смотреть все] –1

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


220. "Ричарда Столлман опубликовал книгу по языку Си и расширениям..."  +/
Сообщение от Карабьян (?), 07-Сен-22, 20:16 
И эти люди охаивали майкрософт за ембрейс ехтингвиш и далее. Но МС никогда Си не поганила
Ответить | Правка | Наверх | Cообщить модератору

231. "Ричарда Столлман опубликовал книгу по языку Си и расширениям..."  +1 +/
Сообщение от navdotru (?), 07-Сен-22, 21:51 
#pragma declspec
Ответить | Правка | Наверх | Cообщить модератору

317. "Ричарда Столлман опубликовал книгу по языку Си и расширениям..."  +/
Сообщение от Аноним (-), 08-Сен-22, 22:38 
> #pragma declspec

У MSVC вообще довольно много incompat такого плана. А еще он не умеет __attribute__ допустим, как gcc или шланг, при том что атрибуты как-то мощнее и адреснее в указании к чему это по факту применяется.

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

255. "Ричарда Столлман опубликовал книгу по языку Си и расширениям..."  +/
Сообщение от Аноним (255), 08-Сен-22, 02:12 
Ну да, а C++/CLI - не считается.

https://en.wikipedia.org/wiki/C%2B%2B/CLI

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

256. "Ричарда Столлман опубликовал книгу по языку Си и расширениям..."  +/
Сообщение от Аноним (255), 08-Сен-22, 02:14 
Я больше скажу. MS никогда C и не поддерживала. Только C++ с огрызком стандартной библиотеки C.
Ответить | Правка | К родителю #220 | Наверх | Cообщить модератору

280. "Ричарда Столлман опубликовал книгу по языку Си и расширениям..."  +/
Сообщение от Аноним (280), 08-Сен-22, 10:31 
> Я больше скажу. MS никогда C и не поддерживала. Только C++ с
> огрызком стандартной библиотеки C.

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

И вообще, линуксоид может отстроить себе ядро на не очень крутой машине. Удачи в обычном домашнем окружении винду или какой-то ее кус вообще отребилдить без мытарств, даже если б вам сорц и дали.

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

287. "Ричарда Столлман опубликовал книгу по языку Си и расширениям..."  +/
Сообщение от n00by (ok), 08-Сен-22, 11:45 
У Виндоса ядро офигенное получилось для того времени. Когда оперативной памяти было мало, экзешники там быстрее отображались в память и её экономили, не генерируя лишних грязных страниц. Ныне памяти в разы больше, данные с накопителя быстрее читать большим блоком, тогдашние оптимизации как бы вредят.
Ответить | Правка | Наверх | Cообщить модератору

304. "Ричарда Столлман опубликовал книгу по языку Си и расширениям..."  +/
Сообщение от Аноним (-), 08-Сен-22, 20:36 
> У Виндоса ядро офигенное получилось для того времени.

В NT4 и винтукее - ну да, нормально. Однако владельцем оно все же не вышло и маркетинговый булшит все пожрал и изгадил. Да и ядро в развитии застопорилось а линух с тех пор показал мастеркласс на тему как ядра девелопать. Да еще в открытом виде. Благодаря чему, между прочим, я научился довольно эффектным трюкам, которые нехило доразвил. Скажем компил-тайм чекингу довольно много чего, даже за пределами того что static_assert из C11 может так сходу изобразить.

А на примере винды чему можно научиться? Потреб-цтву? Поклонению "божкам" из "корпорации". Спасибо, но это не мой путь. Я предпочел научиться тому что "божки" умеют.

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

Linux видите ли все это тоже умеет, много лет назад, да еще и покруче и погибче пожалуй, да еще чуть не с 2.6 лохматых, когда они там clone() придумали (наполовину стырили идеи из plan9).

А сейчас так и сильно больще чем это. Воооон там KSM в виде ядерного тредика сканит странички изредка и - коллапсит идентичные в 1 страницу. Ну а если оно решает стать разным, copy on write (RCU) обратно unshare'нет это. Зачем так? Если у меня поднят целый флот виртуалок на основе одной и той же технологии, их суммарное потребление RAM будет лишь 1 core-set и кучка небольших "дельт". Так что суммарное потребление N виртуалок по M памяти не будет иметь ничего общего с N * M и будет в разы меньше чем это, если они похожие. А в винде такие чудеса управления памятью вообще есть? И кстати вся эта благодать доступна мне совершенно бесплатно даже на моем десктопе, а не только в энтерпрайз эдишне за много денег. Стоит ли говорить что я горой за тех кто мне помогает такими технологиями ворочать?

> Ныне памяти в разы больше, данные с накопителя быстрее читать большим блоком,
> тогдашние оптимизации как бы вредят.

Чего бы это? Читать с накопителя все-равно больше времени занимает чем операции со страницами, если это RAM-to-RAM было. Впрочем, если кому-то это не нравится, ядро линя научилось в transparent huge pages. Так что оверхед от педалинга страниц сильно меньше. И это все автоматически, прогерам вообще делать ничего не надо. А в винде это все вообще есть? Кстати вон то не халявно дается. Видите ли возникает underuse больших страниц, и даже такая мелочь как фэйсбук начинает бухтеть что "эй, у нас треть RAM сервера - slack?!". Поэтому они вооооон там кодят инверс этой оптимизации, который оптимизит зафрагментированные THP. А в винде такой хайтек точно есть, хотя-бы в дальних планах?

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

332. "Ричарда Столлман опубликовал книгу по языку Си и расширениям..."  +/
Сообщение от n00by (ok), 09-Сен-22, 10:01 
> А на примере винды чему можно научиться?

Венгерской нотации же. szString.))) Или начинать имена классов с 'C'. Микрософт так сделала, что бы _свои_ имена вынести в такое своеобразное пространство имён (у Борланда был префикс 'T'), но народ в такие нюансы вникать не стал, надо слепо копировать у мастера!

>> Ныне памяти в разы больше, данные с накопителя быстрее читать большим блоком,
>> тогдашние оптимизации как бы вредят.
> Чего бы это? Читать с накопителя все-равно больше времени занимает чем операции
> со страницами, если это RAM-to-RAM было. Впрочем, если кому-то это не
> нравится, ядро линя научилось в transparent huge pages.

Это я про «загрузку» экзешников. Винда мапила несколько нужных вот прям сейчас страниц и на этом выигрывала. Но остальные позже приходилось всё равно загружать. Сейчас может оказаться быстрее получить от накопителя блоком всё подряд, даже ненужные данные.

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

359. "Ричарда Столлман опубликовал книгу по языку Си и расширениям..."  +/
Сообщение от Аноним (-), 10-Сен-22, 12:55 
> Венгерской нотации же. szString.)))

Да ну спасибо.

> Или начинать имена классов с 'C'. Микрософт так сделала, что бы _свои_ имена
> вынести в такое своеобразное пространство имён (у Борланда был префикс 'T'),
> но народ в такие нюансы вникать не стал, надо слепо копировать у мастера!

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

> Это я про «загрузку» экзешников. Винда мапила несколько нужных вот прям сейчас
> страниц и на этом выигрывала.

Линух вообще-то создает при форке новый процесс из старого как почти 100% шару памяти, заодно это и причина по которой fork() очень эффективная конструкция. В винде оно с вот именно такой эффективностью в принципе не делается, там вроде вообще нет прямого эквивалента именно таких примитивов. Только новый процесс создать, это в целом сильно больше приседаний, и вот чего-чего а это ведет к дикой тормознутости *nix-way тулсов в винде. Они там процессы плодят часто и много, и в винде это не очень хорошо работает. Не понимаю с чего вы взяли что у них там что-то было "эффективно".

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

Линух чаще всего накопитель вообще не трогает т.к. почти все нужные страницы уже были в памяти. Кроме каких-то случаев когда вот именно новый, уникальный процесс стартует. И кстати это все еще и .so/dll касается, их же тоже парсить и в память мапить надо, если их там еще не было. В лине из-за практики что весь софт в репах билдится относительно вон тех либ - жесткий реюз кода и для уже вгруженой .so - нафиг не надо читать ее еще раз, страницы уже и так в памяти есть и в целом это все сильно быстрее и эффективнее.

Скажем берем 2 жирные кутевых программы. Запускаем первую. Если система на базе GTK то старт первой может занять энное время пока кутевый рантайм с накопителя считается, распарсится, отмапится в память и проч. Но вторая программа стартанет как из пушки потому что он юзала тот же "системный" куть и он уже в памяти висел. Более того - RAM под рантайм кутя сожрется только 1 раз по сути. Только один core set + очень небольшая per-process дельта.

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

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

321. "Ричарда Столлман опубликовал книгу по языку Си и расширениям..."  +1 +/
Сообщение от Аноним (321), 08-Сен-22, 23:56 
Не знаю, на чем они там DOS писали, но компилятора C у них никогда не было. MSVC - это компилятор C++. И да, даже если твой код не использует возможностей C++ и внешне похож на C, его интерпретация компилятором C и C++ будет разной.
Ответить | Правка | К родителю #280 | Наверх | Cообщить модератору

333. "Ричарда Столлман опубликовал книгу по языку Си и расширениям..."  +/
Сообщение от n00by (ok), 09-Сен-22, 10:16 
/Tc     Указывает исходный файл на языке C.
/TC     Указывает, что все исходные файлы — C.
/Tp     Указывает исходный файл на языке C++.
/TP     Указывает, что все исходные файлы являются C++.

Но Си там был своеобразный.

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

360. "Ричарда Столлман опубликовал книгу по языку Си и расширениям..."  +/
Сообщение от Аноним (-), 10-Сен-22, 12:58 
> Не знаю, на чем они там DOS писали, но компилятора C у них никогда не было.

Да что ты? А что такое было, допустим, Microsoft C 80? :)

> MSVC - это компилятор C++.

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

> И да, даже если твой код не использует возможностей C++ и внешне похож на C,
> его интерпретация компилятором C и C++ будет разной.

Спасибо капитан очевидность.

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

322. "Ричарда Столлман опубликовал книгу по языку Си и расширениям..."  +/
Сообщение от Аноним (321), 08-Сен-22, 23:59 
> А так глядя на скорость работы винды и линуха с большими иерархиями файлов, например - простите но винду клинит в разы хуже, и мысль что у них офигенное ядро получилась на этом фоне чего-то не убедительна.

Скорость работы файловой системы никак не связана с выбором ЯП.

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

361. "Ричарда Столлман опубликовал книгу по языку Си и расширениям..."  +/
Сообщение от Аноним (-), 10-Сен-22, 12:59 
> Скорость работы файловой системы никак не связана с выбором ЯП.

Как бы это сказать? Лично мне не нравится как работает виндозное ядро по довольно многим аспектам. По поводу чего я и кривлю рожу на тему "ну что, майкрософт, помогли тебе твои плюсы?"

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

279. "Ричарда Столлман опубликовал книгу по языку Си и расширениям..."  +/
Сообщение от Аноним (277), 08-Сен-22, 10:27 
> никогда Си не поганила

Да куда им?! Их кусок позора в виде студии даже C99 до конца не умеет вроде аж до сих пор. И если на них равняться... маздайцы все как один пишут на "C++". Который по факту оказывается C99, ради коментов // и чего еще по мелочи. Не, даже классы не юзают и какие там еще неймспейсы, чисто меняют расширение для менее мерзотного компилера. А заодно и по оптимизациям студия уже давно перестала быть впереди планеты всей: gcc и clang ее во многих случаях делают с отрывом.

Так что никто не собирается на майков равняться в случае си. Они делом доказали что их компилер дикий ацтой.

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

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

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




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

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