Как сэкономить оперативную память при работе с очень большими python dict? - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть пары ключ-значение на уровне миллиарда, и мне нужно создать справочную таблицу для них. В настоящее время я использую нативный python dict, однако, он кажется очень медленным при добавлении пар в dict и потребляет много оперативной памяти (несколько сотен ГБ). Мне нужен вариант: 1) добавить каждую пару в dict и 2) поиск несколько миллионов раз. Есть ли рекомендуемые способы, которые я должен предпринять, чтобы выполнить требование? У меня есть машина с несколькими сотнями гигабайт памяти (но ее недостаточно для хранения всего в памяти) и большим количеством ядер ЦП.

1 Ответ

2 голосов
/ 18 апреля 2019

Если эти данные не передаются между машинами (и если они находятся в памяти с dict, я не думаю, что это так), то я бы рекомендовал использовать локальную базу данных SQLite.

Python имеет внутреннюю библиотеку для быстрого взаимодействия с SQLite (написано на C), хранит данные на диске (для экономии оперативной памяти) и доступно практически везде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...