1

我有一些腌制数据,存储在磁盘上,大小约为 100 MB。

当我的 python 程序被执行时,选择的数据是使用cPickle模块加载的,一切正常。

例如,如果我多次执行 python python main.py,每个 python 进程将多次加载相同的数据,这是正确的行为。

我怎样才能做到这一点,所有新的python进程共享这些数据,所以它只加载一次到内存中?

4

2 回答 2

2

如果您在 Unix 上,一种可能性是将数据加载到内存中,然后让脚本用于os.fork()创建一堆子进程。只要子进程不尝试修改数据,它们就会自动共享父进程的副本,而无需使用任何额外的内存。

不幸的是,这不适用于 Windows。

PS 我曾经询问过将 Python 对象放入共享内存中的问题,但这并没有产生任何简单的解决方案。

于 2012-05-11T12:08:44.493 回答
0

根据您解决此问题的严重程度,您可能需要查看 memcached,如果这不是矫枉过正的话。

于 2012-05-11T12:59:07.353 回答