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

python – 仅在多处理时使用高内存

5b51 2022/1/14 8:21:28 python 字数 1667 阅读 513 来源 www.jb51.cc/python

我正在尝试使用python的多处理库来希望获得一些性能.具体来说,我正在使用其map功能.现在,出于某种原因,当我将其与单个处理的对应物交换出来时,我没有获得高内存使用率.但是使用多处理版本的地图会让我的记忆彻底改变.为了记录我正在做一些容易占用大量内存的东西,但两者之间的区别是什么会造成如此明显的差异呢?最佳答案您意识到多处理不使用线程,是吗?我这样说是因

概述

我正在尝试使用python的多处理库来希望获得一些性能.具体来说,我正在使用其map功能.现在,出于某种原因,当我将其与单个处理的对应物交换出来时,我没有获得高内存使用率.但是使用多处理版本的地图会让我的记忆彻底改变.为了记录我正在做一些容易占用大量内存的东西,但两者之间的区别是什么会造成如此明显的差异呢?

您是通过多处理的地图发送大量数据吗?可能的原因是序列化多处理在许多情况下必须要做.多处理使用pickle,它通常比它的酸洗数据占用更多的内存. (在某些情况下,特别是在使用fork()的系统上,当您调用map方法时会创建新进程,它可以避免序列化,但只要需要将新数据发送到现有进程,它就不能这样做.)

由于使用多处理,所有实际工作都在单独的进程中完成,因此主进程的内存不应受您执行的实际操作的影响.但是,内存的总使用量确实会增加很多,因为每个工作进程都有您发送的数据的副本.在有CoW的系统上,这有时是写时复制内存(在非串行化的情况下),但是Python对内存的使用很快就会被写入,从而被复制.

总结

以上是编程之家为你收集整理的python – 仅在多处理时使用高内存全部内容,希望文章能够帮你解决python – 仅在多处理时使用高内存所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶