python有内存处理模块吗_使用Python多处理的高内存使用
我已经看到一些使用Python多处理模块的内存使用的帖子.但问题似乎并不能解决我在这里遇到的问题.我发表了我的分析,希望有人能帮助我.
问题
我正在使用多进程并行执行任务,我注意到,工作进程的内存消耗无限期增长.我有一个小的独立的例子,应该复制我注意到的.
import multiprocessing as mp
import time
def calculate(num):
l = [num*num for num in range(num)]
s = sum(l)
del l # delete lists as an option
return s
if __name__ == "__main__":
pool = mp.Pool(processes=2)
time.sleep(5)
print "launching calculation"
num_tasks = 1000
tasks = [pool.apply_async(calculate,(i,)) for i in range(num_tasks)]
for f in tasks:
print f.get(5)
print "calculation finished"
time.sleep(10)
print "closing pool"
pool.close()
print "closed pool"
print "joining pool"
pool.join()
print "joined pool"
time.sleep(5)
系统
我正在运行Windows,我使用任务管理器来监视内存使用情况.我正在运行Python 2.7.6.
意见
我已经总结了下面的2个工作进程的内存消耗.
+---------------+----------------------+----------------------+
| num_tasks | memory with del | memory without del |
| | proc_1 | proc_2 | proc_1 | proc_2 |
+---------------+----------------------+----------------------+
| 1000 | 4884 | 4694 | 4892 | 4952 |
| 5000 | 5588 | 5596 | 6140 | 6268 |
| 10000 | 6528 | 6580 | 6640 | 6644 |
+---------------+----------------------+----------------------+
在上表中,我尝试更改任务数量,并观察在所有计算结束之前和加入池之前消耗的内存. “del”和“without del”选项是否分别对calculate(num)函数中的del l行进行注释或注释.计算前,内存消耗量约为4400.
>看起来手动清除列表的结果是工作进程的内存使用量较低.我以为垃圾收集器会照顾这个.有办法强制垃圾收集吗?
>令人困惑的是,随着任务数量的增加,这两种情况下的内存使用量不断增加.有没有办法限制内存使用?
我有一个基于这个例子的过程,意在长期运行.我观察到这个工作进程在过夜运行之后占用了大量的内存(〜4GB).做一个连接来释放内存不是一个选择,我试图找出一种没有加入的方式.
这似乎有点神秘.有人遇到过类似的事情吗?如何解决这个问题?
python有内存处理模块吗_使用Python多处理的高内存使用相关推荐
- python飞机大战功能模块图_基于Python的飞机大战游戏设计
第 2 3 卷 第 1 期 2019年 3 月 扬 州 职 业 大 学 学 报 Journal of Yangzhou Polytechnic College Vol .23 No . 1 Mar . ...
- python 自动发邮件模块抄送_一个python的邮件发送脚本,自动,定时,可以附件发送,抄送...
#mail.py使用方法: 1,本脚本同目录下文件介绍: sender.list:邮件发送者邮箱和密码,第一行账号(如example@example.com),第二行密码(必须项,不能为空) rece ...
- python内存管理和释放_《python解释器源码剖析》第17章--python的内存管理与垃圾回收...
17.0 序 内存管理,对于python这样的动态语言是至关重要的一部分,它在很大程度上决定了python的执行效率,因为在python的运行中会创建和销毁大量的对象,这些都设计内存的管理.同理pyt ...
- python图形化方式模块安装_(怎么安装python模块,如何安装python模块,常用安装方式)python助手安装教程视频...
有没有比较好的python3的入门视频教程,网盘或网站都可以. 我这里有Python,开发,进阶,自动化,实战列视频教程,还有安装包,,代码等容,这里就不一一说了,全套内容一共300G左右,非常的详细 ...
- python的requests模块功能_《Python数据可视化编程实战》—— 1.7 安装requests模块-阿里云开发者社区...
本节书摘来异步社区<Python数据可视化编程实战>一书中的第1章,第1.7节,作者:[爱尔兰]Igor Milovanović,更多章节内容可以访问云栖社区"异步社区" ...
- python gevent模块 下载_【python安全攻防】包、模块、类、对象
终于又到了一周一度的整理博客的时间了,博主平时课余时间看书,周末统一整理,坚持周更真是爱了爱了 - 今天要说的是python面向对象这一部分的内容,今天这是基础篇的第二篇,也是最后一篇. 说来基础篇还 ...
- python常用模块教程_盘点Python常用的模块和包
模块 1.定义 计算机在开发过程中,代码越写越多,也就越难以维护,所以为了编写可维护的代码,我们会把函数进行分组,放在不同的文件里.在python里,一个.py文件就是一个模块. 2.优点: 提高代码 ...
- python 接口自动化的sql验证_基于Python的接口自动化实战-基础篇之pymysql模块操做数据库...
引言 在进行功能或者接口测试时经常须要经过链接数据库,操做和查看相关的数据表数据,用于构建测试数据.核对功能.验证数据一致性,接口的数据库操做是否正确等.所以,在进行接口自动化测试时,咱们同样绕不开接 ...
- 学python必须得英语精通吗_“学习python必须精通的几个模块“
python中都有哪些模块呢 这就多了你,文档有每个模块介绍: https://docs.python.org/2/library/index.html 如果了您的问题请采纳! 如果未解继续追问 如何 ...
最新文章
- 功能分支重新设置后,Git推送被拒绝
- Python 学习日记 第八天
- WPF编游戏系列 之四 用户控件
- INTEROP service's ResolveLink operation returned 2 targets for hash, first one
- 英语复习二:每单元的翻译篇章
- k8s - 如何变更CNI网络插件IP池?
- python 多线程Thread
- Voltage Keepsake CodeForces - 801C(二分)
- python pip国内源_Python pip配置国内源 (转载)
- 独立游戏开发者---孤独前行的梦想家
- aop:aspectj-autoproxy作用
- 干货 :六招教你用Python分分钟构建好玩的深度学习应用
- Python(一)为什么要学习Python
- 又一AI大牛重返学界! 原京东高级副总裁周伯文受聘为清华电子工程系长聘教授...
- 树莓派初次开机配置教程
- 如何让word文档都在同一个窗口下打开 (反之亦可)
- Openpose Usage 笔记
- 最新仿商城发卡网源码,带图片展示
- 机架服务器作用,什么是机架式服务器?有什么优势?
- java实现智能拼图_JAVA实现拼图游戏