Я намерен сделать структуру программы, как показано нижеПопутный переменные между двумя питона процессами
PS1 программа питон настойчиво работает. PC1, PC2, PC3 являются клиентскими программами python. PS1 имеет переменную хеш-таблицу, всякий раз, когда PC1, PC2 ... запрашивает хэш-таблицу, PS1 передает ее им.
Цель состоит в том, чтобы сохранить таблицу в памяти, поскольку она представляет собой огромную переменную (занимает 10 ГБ памяти), и ее дорого рассчитать каждый раз. Невозможно сохранить его на жестком диске (используя pickle или json) и читать его каждый раз, когда это необходимо. Чтение занимает слишком много времени.
Так мне было интересно, если есть способ сохранить переменную питона постоянно в памяти, поэтому он может быть использован очень быстро, когда это необходимо.
Сохраните его в базе данных? Именно для этих целей используются базы данных. Альтернативой является выделение разделяемой памяти для переменной и возможность другим процессам python получить к ней доступ. – DyZ
Рассматривали ли вы использование базы данных? Когда вы говорите «Хэш-таблицу 10 ГБ», моя первая мысль - «MongoDB» (или аналогичная настройка хранилища ключей). Прохождение около 10 ГБ хэш-таблиц кажется совершенно ненужным. – ShadowRanger
http://stackoverflow.com/questions/6832554/python-multiprocessing-how-do-i-share-a-dict-among-multiple-processes –