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

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

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

import resource

soft, hard = resource.getrlimit(resource.RLIMIT_AS)

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

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

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

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

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

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

0.5 * 1024 ^ 6 = 576460752303423488

所以设置为:

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

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

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

【编辑推荐】

python设置程序最大内存_限制你的Python程序所能使用的最大内存相关推荐

  1. python设置excel套打_用强大的Python处理海量的Excel,工作从未如此简单

    excel 欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练.面试集锦.学习资料等. 前言 成堆的数据如何导入Excel进行分析? 大量的表 ...

  2. 怎么用python编写程序计算标准差_自学生信Python(第五天)|如何计算标准差?...

    如何计算标准差? 本人是一枚生物学的学生,由于对生物信息学特别感兴趣,于是想自学生物信息学(新手莫怪).了解到生物信息学要有编程基础,尤其是要会一门编程语言,例如:R语言.Python.Perl等,还 ...

  3. python免费开源工具推荐_年薪200万的程序员,推荐这10大Python免费开源工具!

    原标题:年薪200万的程序员,推荐这10大Python免费开源工具! 毫无疑问,Python是最流行的语言之一,其成功的原因之一是它为科学计算提供了广泛的报道. 在这里,我们仔细研究用于机器学习和数据 ...

  4. 微信小程序超级占内存_实测:微信小程序究竟会占用多少内存?结果竟然

    上图就是小编微信中已经安装的小程序列表.微信占用的内存空间数据.接下来小编安装两个小程序. 上图就是安装小程序之后的结果,可以看出,安装程序对内存空间影响几乎没有.(可能是极小,小到可以忽略不计.) ...

  5. java代码耗尽内存_为什么运行Java应用程序的计算机几乎耗尽了物理内存,但仍然可以运行数周...

    我有一个Java应用程序,该应用程序部署在两台计算机上,并根据指标(包括JMC)判断它们都几乎耗尽了内存,并且持续了很长时间.但是,这些应用程序可以正常运行,并且不会发生OutOfMemory错误. ...

  6. python免费开源工具推荐_年薪200万的程序员,推荐的10大Python开源免费工具!

    原标题:年薪200万的程序员,推荐的10大Python开源免费工具! 毫无疑问,Python是最流行的语言之一,其成功的原因之一是它为科学计算提供了广泛的报道. 在这里,我们仔细研究用于机器学习和数据 ...

  7. python笔记本电脑安装不成功_笔记本安装python2.7程序的方法

    python是一种全功能的语言,一些编程人员都会用到.可是一些用户不知道如何安装python2.7程序?,针对此问题,今天小编介绍笔记本安装python2.7程序的方法. 1.首先去python官网下 ...

  8. python开发小程序拼团_拼团模式小程序商城开发方案

    在2020年的今天,线上购物早已深入人们的日常生活,成为许多人的首选购物方式.而随着互联网应用的发展,线上购物的方式也在不断地创新.如今,拼团类应用势头正猛,不论从头部公司的规模还是用户数量和粘性来看 ...

  9. python算程序员吗_我算是优秀的程序员吗?

    心态 我经常问自己,我算是优秀的程序员吗? 有的时候我觉得自己是优秀的程序员,什么时候呢? 当我解决问题的时候,当我学会一个技术,并且能应用于项目中的时候.我都会心里夸自己"你牛,你牛,你真 ...

  10. 表示python代码块的是_编写高质量Python代码的59个有效方法,你用过几个

    欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练.PDF电子文档.面试集锦.学习资料等. 这个周末断断续续的阅读完了<Effectiv ...

最新文章

  1. Asp.net单点登录解决方案
  2. 2018.11.03-dtoj-3130-流浪者(rover)
  3. 《Spring技术内幕》——1.4节Spring的应用场景
  4. Linux:程序员必备的21条Linux 命令
  5. jquery 全选获取值
  6. 使用Jquery EasyUi常见问题解决方案
  7. 广义表头尾链表存储结构_详解Redis五种数据结构的底层原理
  8. 架构设计 —— 性能选型、高可用
  9. selenium问题记录
  10. 刚才调试了个mysql中文乱码的问题
  11. 华为手机桌面计算机消失怎么办,华为手机桌面所以图标不见了怎么办
  12. eclipse中添加Json Editor Plugin 插件的方法
  13. GPS从入门到放弃(十六)、卫星时钟误差和卫星星历误差
  14. 离散数学12_第5章 关系与函数之等价关系与序关系、哈斯图
  15. 当在jup里面更新了数据源之后就 帅选不了数据 ,代码运行不了
  16. 微信小程序生成二维码工具类附带完整示例和源码
  17. 在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 集群(续)
  18. java中高效遍历list_Java中四种遍历List的方法总结(推荐)
  19. Linux ALSA声卡驱动之二:Platform
  20. python怎么通过手机号定位_python通过手机号获取微信男女性别

热门文章

  1. 单片机ch2o程序_基于单片机的甲醛浓度检测仪的设计
  2. 7-20 简单计算器 (20 分)————从0学C/浙大pta入门c语言题目
  3. ITK入门教程(9)ITK向量图像
  4. Java线程知识你还记得多少?
  5. Win10 如何添加一个本地用户
  6. Android——完全自定义 底部弹出支付页面
  7. Antimalware Service Executable 高内存的处理办法,亲测有效
  8. 教你如何在win7中安装cygwin64
  9. CSS基本使用复习(1)
  10. Android打包知识体系(二)——APK签名介绍