- 61
- 28 391
Ivan Sorokin
เข้าร่วมเมื่อ 25 ต.ค. 2011
วีดีโอ
Реализация мьютекса используя std::atomic
มุมมอง 1614 ชั่วโมงที่ผ่านมา
Реализация мьютекса используя std::atomic
Примитивы синхронизации: mutex, condition_variable
มุมมอง 714 ชั่วโมงที่ผ่านมา
Примитивы синхронизации: mutex, condition_variable
std::optional, noexcept, SFINAE-friendliness, тривиальные операции
มุมมอง 95หลายเดือนก่อน
std::optional, noexcept, SFINAE-friendliness, тривиальные операции
Анонимные функции, статический и динамический полиморфизм
มุมมอง 91หลายเดือนก่อน
Анонимные функции, статический и динамический полиморфизм
Perfect forwarding, decltype, auto, xvalues, nullptr
มุมมอง 47หลายเดือนก่อน
Perfect forwarding, decltype, auto, xvalues, nullptr
Абстрактные классы, dynamic_cast, RTTI, protected, LSP, виртуальное наследование
มุมมอง 2086 หลายเดือนก่อน
Абстрактные классы, dynamic_cast, RTTI, protected, LSP, виртуальное наследование
Наследование, виртуальные функции, срезка, виртуальный деструктор
มุมมอง 1836 หลายเดือนก่อน
Наследование, виртуальные функции, срезка, виртуальный деструктор
SFINAE, tag-dispatching (продолжение)
มุมมอง 1346 หลายเดือนก่อน
SFINAE, tag-dispatching (продолжение)
Взаимодействие шаблонов и неполных типов, SFINAE, tag-dispatching
มุมมอง 1926 หลายเดือนก่อน
Взаимодействие шаблонов и неполных типов, SFINAE, tag-dispatching
Шаблоны, специализации, зависимые имена, type-traits
มุมมอง 3436 หลายเดือนก่อน
Шаблоны, специализации, зависимые имена, type-traits
Аллокаторы памяти, copy-on-write и small object оптимизации
มุมมอง 2916 หลายเดือนก่อน
Аллокаторы памяти, copy-on-write и small object оптимизации
Предсказание переходов, параллелизм уровня инструкций
มุมมอง 1806 หลายเดือนก่อน
Предсказание переходов, параллелизм уровня инструкций
Многозадачность, виртуальная память, страничная адресация
มุมมอง 1.9K6 หลายเดือนก่อน
Многозадачность, виртуальная память, страничная адресация
классные лекции
узнав о шаблонах начал верить в магию
Самое частое ключевое слово в этой лекции: "как бы"
Невероятное видео, узнал много нового. Спасибо большое)
Отличный канал, лайк автору. Видео довольно наглядное, много примеров. В общем, канал - находка, буду дальше изучать. Ещё раз спасибо автору
Иван, сегодняшние операционные системы работают точно так же, как работали операционнные системы 50 лет назад. И даже компьютеры сущностно всё те же самые. Я за 40+ лет системного программирования принципиальной разницы не вижу никакой. Вообще :) Приведённый пример *(char *)0x12345678 - 'x' НЕ является UB в том смысле, как UB определяется стандартами C или C++. Виртуальную память сделали не “после DOS” Её сделали тогда, когда не было ни MS-DOS, ни Microsoft, и даже процессоров x86 и самой компании Intel в природе не существовало. В самом начале 60-х годов на Atlas. Обращение к странице, которая не “отмаплена” на физическую память, не приведёт к ошибке. Оно приведёт к синхронному прерыванию. А вот как оно будет обрабатываться - отдельный вопрос. Это - основа пейджинга. А он - основа виртуальной памяти. Выбор размера страниц - это не от балды выбранное значение. Маппинг нужно где-то хранить. В Page Table. И чем меньше размер страницы, тем больше памяти под это потребуется. А если учесть дорогой (и потому маленький кэш TLB), то не трудно догадаться, что использовать страницы, например, килобайтные для 32-битной системы получится дороговато. А большие страницы приводят к не эффективному использованию физической памяти. Размер страницы - это компромисс, а не абстрактная величина. Процессоры x86 давным-давно поддерживают Huge Pages - 2MB, 4MB, и даже 1GB. И с ними умеют работать и Windows, и MacOS, и все unix'ы и пингвиниксы.
Скорее всего, добавление такой инструкции, будет дорогой в том плане, что она негативно повлияет на скорость выполнения всех остальных инструкций мб
40:33 Присваивание по стандарту не даёт сильную гарантию. Вследствие этого на cppreference про это для оператора присваивания ничего и не сказано. Может скопировать только часть. Подозреваю, что так сделано для того, чтобы можно было сделать оптимизацию неперевыделения памяти при (почти) совпадающих размерах буффера и помеченном на постоянное равенство объектов типе аллокаторов.
В c++ анонимных функций не существует. Ролик не стала смотреть.