C++ Russia 2018: Фёдор Короткий, Память – идеальная абстракция

Интереснейший доклад о том, как устроена память “внутри“. Обычно в ВУЗах часть этой информации дается на программировании, другая - на операционных системах, а третья - на курсах типа “архитектура ЭВМ“. Итак, доклад построен вокруг трех строчек кода: 1) int* ptr = new int; 2) *ptr = 42; 3) delete ptr; В принципе, все это применимо к любому другому языку программирования. В первой строке мы выделяем динамическую память для хранения целого числа. Во второй - записываем по полученному адресу число 42. В третьей - освобождаем память. Но что же внутри? (ответ дается для архитектуры x86_64, операционной системы Linux и аллокатора jemalloc {один из хороших аналогов стандартному аллокатору}). Ниже краткое содержание доклада с таймингом: 7:40 - оказывается malloc работает по-разному для “маленьких“ и “больших“ объектов. У нас объект маленький... . 9:30 - оказывается аллокатор поддерживает хитрую структуру данных для быстрого выделения памяти под
Back to Top