Как устроен словарь в CPython: compact dict, key sharing и что с ним делает free-threading

У dict в Python слишком простая внешность: положили ключ, достали значение, пошли дальше. Но за этим стоит один из самых вылизанных участков CPython — с компактным хранением, сохранением порядка вставки, общими ключами для экземпляров классов, оптимизациями доступа к атрибутам и новыми компромиссами из-за free-threading. В статье разберём, почему обычный словарь давно перестал быть «просто хеш-таблицей», как его устройство влияет на память и скорость кода, и какие привычки Python-разработчика могут незаметно ломать быстрый путь интерпретатора. Разобрать dict

https://habr.com/ru/companies/otus/articles/1029210/

#python #CPython #словарь_Python #хештаблица #compact_dict #оптимизация_памяти

Как устроен словарь в CPython: compact dict, key sharing и что с ним делает free-threading

Когда я в первый раз залез в dictobject.c (исходник словаря в CPython), я ожидал увидеть хеш-таблицу. Увидел три с половиной тысячи строк С-кода и комментарий Тима Петерса 2001 года, в котором он...

Хабр