限制你的Python程序所能使用的内存

如果程序开发不当,可能会出现占用过多内存的情况。特别是在Docker里面,如果Python程序占用太多内存,可能会导致Docker容器死掉。

在赛罕等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站设计、成都网站建设 网站设计制作定制开发,公司网站建设,企业网站建设,品牌网站建设,营销型网站,成都外贸网站制作,赛罕网站建设费用合理。

为了限制Python程序所能使用的最大内存,我们可以使用Python自带的resource模块。

首先获取系统默认的内存soft上限和hard上限:

 
 
 
 
  1. import resource 
  2. soft, hard = resource.getrlimit(resource.RLIMIT_AS) 

其中的resource.RLIMIT_AS实际上就是数字5,表示内存资源。而soft限制是一个可以调节的内存使用上限,hard是一个一旦设定就很难动态调整的内存使用量上限。

在我的电脑上运行效果如下图所示:

一开始soft和hard的值是一样的。并且它们的单位不是比特。而是比比特还小的单位。我的电脑是8GB内存,而8 * 1024 ^ 6 正好约等于这里的hard和soft的值。

接下来,设置当前运行的这个Python程序能够使用的最大内存:

 
 
 
 
  1. resource.setrlimit(resource.RLIMIT_AS, (最大上限, hard)) 

其中最大上限是一个整数。假设我想限制当前程序最多可以使用500MB的内存,那么这里的最大上限可以设置为:

 
 
 
 
  1. 0.5 * 1024 ^ 6 = 576460752303423488 

所以设置为:

 
 
 
 
  1. resource.setrlimit(resource.RLIMIT_AS, (576460752303423488, hard)) 

那么当前Python程序使用的内存超过500MB以后,程序就会抛出MemoryError。

最后,这些代码只能在Linux系统上正常工作。Windows和Mac上可能会有问题。

本文转载自微信公众号「未闻Code」,可以通过以下二维码关注。转载本文请联系未闻Code公众号。

文章名称:限制你的Python程序所能使用的内存
网页URL:http://www.shufengxianlan.com/qtweb/news45/487395.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联