024. Модель памяти C++ - Андрей Янковский

  Рет қаралды 50,992

Yandex for Developers

Yandex for Developers

9 жыл бұрын

Подробнее о С++ Party events.yandex.ru/events/cpp-p...
В докладе Андрей расскажет о моделях памяти различных процессоров, о тонкостях реализации неблокирующих алгоритмов и о том, какое отношение всё это имеет к С++.

Пікірлер: 62
@rajponomarenko9841
@rajponomarenko9841 11 ай бұрын
Большое спасибо, Андрей! Уверен, даже Энтони Уильямсу не помешало бы посмотреть это перед тем, как выпускать очередное издание книги "C++ Concurrency in Action" :) Вначале - зачем, и только потом как. После этого всё ложится по полочкам.
@pro.crastination
@pro.crastination 8 жыл бұрын
Большое спасибо! Очень помогло в понимании вопроса.
@UnrealEngine_Master
@UnrealEngine_Master 8 жыл бұрын
Все чотко и понятно. Спасибо за доклад
@riz1_k
@riz1_k 10 ай бұрын
Наконец-то спикер без деффектов речи и волнуещегося голоса. Топич
@user-sz7kt8nf1m
@user-sz7kt8nf1m 3 жыл бұрын
Круто, спасибо. Читал Энтони Уильямса, описание казалось несколько размытым. Здесь все по полочкам.
@user-zb5pr4wv8d
@user-zb5pr4wv8d 8 жыл бұрын
Спасибо очень интересная информация
@ivanalign2048
@ivanalign2048 7 жыл бұрын
очень круто! Помогло, спасибо!! 1 момент: в примере 3 на 20:54 опечатка. подшаманивать надо CPU1, а не CPU0
@Yury-Baranovskiy
@Yury-Baranovskiy 4 жыл бұрын
Спасибо за лекцию
@andreyyurchenko8802
@andreyyurchenko8802 7 жыл бұрын
да, очень толково
@jozz3235
@jozz3235 6 жыл бұрын
Спасибо за прояснение ;)
@holy-del
@holy-del 2 жыл бұрын
Доходчиво! Спасибо!
@vladimir0rus
@vladimir0rus 3 ай бұрын
32:40 На одноядерных процессорах тоже были проблемы с многопоточностью - процессор так же мог переставить операции, а ОС могла в неудачный момент передать управление другому потоку.
@grv379
@grv379 Ай бұрын
Из определения Acquire следует что операции после барьера можно перекидывать наверх и ставить после последней операции чтения ? Может быть, оно так не работает, но определение не запрещает этого?
@nefton001
@nefton001 3 жыл бұрын
соотношение сторон для эстетов?
@user-sz7kt8nf1m
@user-sz7kt8nf1m 3 жыл бұрын
Только не понял, почему мъютекс остался даже после описания модели памяти
@user-tn9pq7bv5h
@user-tn9pq7bv5h Жыл бұрын
19:12 как инструкция может попасть выше, то есть за пределы самого условия IF? это же уже нарушение логики алгоритма
@user-tx7rp3hb5j
@user-tx7rp3hb5j 4 жыл бұрын
Я не очень часто пишу на С++, но почему-то смотрю)
@m110h1986
@m110h1986 3 жыл бұрын
это у вас врождённая тяга к истине
@user-ty1ms9je9s
@user-ty1ms9je9s 3 жыл бұрын
Чем отличаются memory_order_seq_cst и memory_order_acq_rel?
@inbuckswetrust7357
@inbuckswetrust7357 2 жыл бұрын
В первом случае инструкции выполняются в том порядке в котором они в программе, во втором случае блок между акуре-релиз будет выполнятся в том порядке что есть и без забрасывания записи наверх перед акуром. Соответствеено инструкции вне блока могут перемещаться процессором и компилятором
@Tyn4tyk
@Tyn4tyk 2 жыл бұрын
что то я не понимаю, разве программа не выполняется сверху вниз? почему процессор путает местами порядок выполнения команд?
@assortedbeans
@assortedbeans 2 жыл бұрын
Если не поставить барьеры то пограмма может выполнится из конца в начало. Закончится выполнение ровно на точке входа main. Будьте осторожны!
@vladimir0rus
@vladimir0rus 3 ай бұрын
6:00 Это неправильный singleton, начиная с С++11 его надо делать через static переменную и без мьютексов. Получается это синтетический пример того как делать не надо, что Ок в контексте выступления.
@user-qz5jz1qe3r
@user-qz5jz1qe3r 5 жыл бұрын
Аааа как с этим жить..
@maxrulerootmaxruleroot9916
@maxrulerootmaxruleroot9916 8 ай бұрын
очень интересно, но ничего не понял....
@teastrum
@teastrum 4 жыл бұрын
Савельев:"Компьютерные мальчики"
@alexgorodecky1661
@alexgorodecky1661 7 жыл бұрын
просто божественно! дикий контраст с джавистами, которые любят рассказывать свою элитарную муть про memory model по 2 часа с нулевым итогом для понимания!
@danieltereshchenko6214
@danieltereshchenko6214 7 жыл бұрын
Я более чем уверен что если бы парень писал на джаве, обьяснил бы также ясно. При чём тут язык программирования к стилю ведения доклада?
@HedgehogInTheCPP
@HedgehogInTheCPP 5 жыл бұрын
псс, суть в том что плюсовики обычно досконально понимают низкоуровневые вещи ибо это критично ибо важна производительность. Поэтому у плюсовиков более простым языком изложены вещи про память, кэши процессора, предсказания переходов и прочее прочее, а самое главное при этом не теряется вся высокоуровневая магия.
@user-iCuaebtAi926
@user-iCuaebtAi926 4 жыл бұрын
Меня выгнали из джава, когдя я им начал толковать как написать сборщик мусора в режиме ядра
@x-path
@x-path 4 жыл бұрын
@@user-iCuaebtAi926 откуда выгнали?)
@user-iCuaebtAi926
@user-iCuaebtAi926 4 жыл бұрын
@@x-path точнее не смог пройти интервью. Им нужна вера, что джава - это hi performance. А я не уверовал
@zetaBit
@zetaBit 4 жыл бұрын
когда я пишу комментарий я немного чувствую себя многопоточным, пшиешь пишешь много текста, а оказывается некоторые независимые от контектса буквы в слове меняются местами, и замечаешь это не сразу :)
@user-iCuaebtAi926
@user-iCuaebtAi926 4 жыл бұрын
судя по докладу программы вообще не должны работать, так как процессор постоянно путает порядок выполнения
@pasol8928
@pasol8928 2 жыл бұрын
Кроме x86))
@woodlandfantomas2044
@woodlandfantomas2044 5 жыл бұрын
Ребята, почитайте литературу Pentium IV, работа с конвеером хеш (там некоторые команды выполняются на перед, там используются вероятностные методы выполнения операций бинарных и унарных .... т... действий , потом обратная польская нотация, но это старый процессор. В новых, как это работает я не видел.
@dmitry6123
@dmitry6123 5 жыл бұрын
Ведение атомиков в цпп было ошибкой. Контроль когерентности памяти не решает всех проблем связанных с "атомарными операциями" в многопроцессорных системах. Натянули сову на глобус как всегда.
@ValentinNechayev
@ValentinNechayev 4 жыл бұрын
Не решает всех проблем - да. "Атомики были ошибкой" - безусловно нет. Глобус - только в вашем воображении, у атомиков есть своя важная роль, даже когда они не решают всё.
@fio6951
@fio6951 3 жыл бұрын
Сначала добивались самой оптимальной оптимизации, теперь ломают голову, как же ее отключить. Идиёты
@tohaya123
@tohaya123 5 жыл бұрын
А вы знали, что ++ оператор есть в чистом С? :)
@addressmodel2121
@addressmodel2121 5 жыл бұрын
Интересно, а чем новеньким порадуют нас разработчики стандарта С++ 20 ? Очень не терпится узнать ! C++ 17 большинство разработчиков уже освоили, это вчерашний день, это школоте мозги разминать перед контрольной по информатике ... . Может быть в C++ 20 наконец то появится что-нибудь для настоящих матёрых программистов, а не для школоты ?
@addressmodel2121
@addressmodel2121 5 жыл бұрын
Это я прикалываюсь, конечно ... . А если серьёзно, что то C++ сильно разогнался с новыми стандартами в языковом синтаксическом сахаре, как бы "с рельс не сошёл" на такой скорости ... .
@addressmodel2121
@addressmodel2121 5 жыл бұрын
Ладно, прикалываемся дальше ... . C++ 11 это уже позавчерашний день, этот стандарт уже старушки на лавочках днём обсуждают ... ! А по вечерам 10-ти летних внуков C++ 11 обучают ! А ВЫ хорошо знаете C++ 11 ?
@user-xd2fi1us5t
@user-xd2fi1us5t 5 жыл бұрын
@@addressmodel2121 мы еще третий используем, лет через двадцать на 11 перейдем
@dmitryponyatov2158
@dmitryponyatov2158 4 жыл бұрын
Общая теория типов, и интерпретатор Haskell в compile time
@addressmodel2121
@addressmodel2121 5 жыл бұрын
А Вы знаете что .net framework написан на языке C, а не на C++ ? А знаете что основная часть кода ядра, и 80 % кода системных сервисов Windows 10 - это тоже на чистом СИ без плюсОв ? А знаете что если принять на работу психологически вменяемых людей с реальным высшим образованием в области информатики и программирования, то они на СИ пишут быстрее и качественнее чем на C++ ?
@Pafnut01
@Pafnut01 5 жыл бұрын
верится с трудом
@addressmodel2121
@addressmodel2121 5 жыл бұрын
@@Pafnut01, вы шутите что ли про то что вам "верится с трудом" ? Информация о языке "Си без плюсов" как основном языке программирования базовых системных модулей есть в интернете в широком доступе. В Википедии про это много написано, и на других ресурсах тоже. Ну вообщем, захотите - найдёте информацию про это.
@Pafnut01
@Pafnut01 5 жыл бұрын
@@addressmodel2121 Что какая-то часть ядра и сервисов написана на чистом Си, это факт. Я просто про > 80% не уверен и инфы про это в Википедии не нашёл. Может, Вы дадите ссылочку?
@addressmodel2121
@addressmodel2121 5 жыл бұрын
@@Pafnut01 , давайте сначала определимся, что считать за ядро: - код реализации Native API - это ядро ? - системные сервисы - это ядро ? - фоновый процесс "бездействие системы" - это ядро ? + обработчики прерываний - это точно ядро ! + программные прерывания и их планировщик - это точно ядро ! + механизмы отложенных процедур - это точно ядро ! (это такая реал-тайм корпоративная многозадачность внутри ядра) Ответ на ваш вопрос про проценты будет зависеть от того, что МЫ договоримся считать ядром ... .
@addressmodel2121
@addressmodel2121 5 жыл бұрын
@@Pafnut01 , ссылочка на другом компе, пока не могу дать ...
@user-oq9xr8dj1b
@user-oq9xr8dj1b 3 жыл бұрын
Вижу яндекс и ставлю сразу дизлайк.
@Airaleais
@Airaleais 2 жыл бұрын
наверное ты дурачок просто =)
@user-oq9xr8dj1b
@user-oq9xr8dj1b 2 жыл бұрын
@@Airaleais ты сам кто? Почему на ютубе отвечают только на самые неважные для меня комментарии, а на важные, не для дураков, реакции никакой?))
@user-oq9xr8dj1b
@user-oq9xr8dj1b 2 жыл бұрын
@@Airaleais Распределение памяти я доверяю компилятору. Бред этот слушать надобности не вижу. С памятью я могу работать и со своих программ.
@Airaleais
@Airaleais 2 жыл бұрын
@@user-oq9xr8dj1b ну вот видишь какое ты глупое ламо, и судя по всем даже ролик не посмотрел, а уже все решил, я такой же был =) лет в 6
Управление памятью и сборщиком мусора в Go
47:26
Московский клуб программистов
Рет қаралды 9 М.
Когда на улице Маябрь 😈 #марьяна #шортс
00:17
🍟Best French Fries Homemade #cooking #shorts
00:42
BANKII
Рет қаралды 9 МЛН
C++ Siberia 2020: Антон Полухин - Незаменимый С++
1:27:06
C++ and Beyond 2012: Herb Sutter - atomic Weapons 2 of 2
1:32:33
toalexsmail
Рет қаралды 20 М.
Корутины
1:51:55
Young&&Yandex: мобильная разработка
Рет қаралды 11 М.
C++ Разработчик учит Python
28:01
Winderton
Рет қаралды 477 М.
Когда на улице Маябрь 😈 #марьяна #шортс
00:17