在Python中共享数据

时间:2012-05-11 11:56:50

标签: python performance python-3.x pickle

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

执行我的python程序时,使用cPickle模块加载拾取的数据,所有这些都可以正常工作。

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

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

2 个答案:

答案 0 :(得分:2)

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

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

P.S。我once asked关于将Python对象放入共享内存,但这并没有产生任何简单的解决方案。

答案 1 :(得分:0)

根据您需要多么认真地解决此问题,您可能需要查看memcached,如果这不是过度杀伤。