Python 从内存中删除不需要的数据

Python 从内存中删除不需要的数据,python,python-2.7,python-multiprocessing,Python,Python 2.7,Python Multiprocessing,我有一个函数,它加载8GB的数据,然后返回6MB的数据(列表)。 但随后我启动了基于多进程的函数,整个8GB被传递到所有进程,因为我只需要函数返回的6MB内存。因此,内存使用量是8*process\u count。如何删除价值8 GB的不需要的数据 伪代码: def fun(): uses another function to load a big json file and get keys from it. something like this: return [k

我有一个函数,它加载8GB的数据,然后返回6MB的数据(列表)。 但随后我启动了基于多进程的函数,整个8GB被传递到所有进程,因为我只需要函数返回的6MB内存。因此,内存使用量是8*process\u count。如何删除价值8 GB的不需要的数据

伪代码:

def fun():
    uses another function to load a big json file and get keys from it.     
 something like this:
 return [k for k,v in ext function returning a big dictionary created from big json file]

def main():
    list_ll = copy.deepcopy(fun()) # done to remove reference to fun
    gc.collect()
    launch multiprocess functions each of which takes a part of list.
    All 8 GB data is being copied.Memory usage too high.

复制到底是怎么回事。。。为什么不直接列出乐趣呢?
fun
到底做了什么。。。是否还有其他地方可能引用大数据的引用。。。。你真的需要整个8gb内存来关注6mb吗?@JonClements我做了复制等…这样gc.collect会删除函数数据…但这不起作用…除了好玩之外没有其他参考…是的,我需要8gb数据来访问6mb列表,只要
fun
返回6mb,而你正在做
where=func()
没关系<代码>深度复制。复制只是让事情复杂化,一事无成。在看不到
fun
正在做什么的情况下,
list\u li
是什么(您确定它没有包含对8gb的引用)或者您是如何进行多处理的情况下-我怀疑是否有人能够提供帮助。@JonClements添加了更多详细信息。请检查