您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python多处理内存使用情况

Python多处理内存使用情况

multiprocessing模块有效地基于fork系统调用,该系统调用创建当前进程的副本。由于您要在之前fork(或创建multiprocessing.Process)加载大量数据,因此子进程将继承数据的副本。

但是,如果您所运行的操作系统实现了COW(写时复制),那么除非您在父进程或子进程(父进程和子进程)中都修改了数据,否则物理内存中实际上只有一个副本。将共享 相同的物理内存页面,尽管它们位于不同的虚拟地址空间中);即使这样,也只会为更改分配额外的内存(以pagesize增量为单位)。

您可以通过multiprocessing.Process在加载大量数据之前进行调用来避免这种情况。这样,当您在父级中加载数据时,其他内存分配将不会反映在子级进程中。

python 2022/1/1 18:16:35 有453人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶