我有一些Pickled数据存储在磁盘上,大小约为100 MB。
执行我的python程序时,使用cPickle
模块加载拾取的数据,所有这些都可以正常工作。
如果我使用python main.py
多次执行python,每个python进程将多次加载相同的数据,这是正确的行为。
我怎么能这样做,所有新的python进程共享这些数据,所以它只被加载到内存中一次?
答案 0 :(得分:2)
如果你在Unix上,一种可能性是将数据加载到内存中,然后让脚本使用os.fork()
来创建一堆子进程。只要子进程不尝试修改数据,它们就会自动共享父进程的副本,而不使用任何额外的内存。
不幸的是,这不适用于Windows。
P.S。我once asked关于将Python对象放入共享内存,但这并没有产生任何简单的解决方案。
答案 1 :(得分:0)
根据您需要多么认真地解决此问题,您可能需要查看memcached,如果这不是过度杀伤。