python会占用多少内存?

导读:本篇文章首席CTO笔记来给大家介绍有关python会占用多少内存的相关内容,希望对大家有所帮助,一起来看看吧。

python 最大能用多大存储空间

这个是操作系统的限制,跟python没有直接关系,因为python是没有限制的。

32位的系统:windows下单个进程可以用到2G内存;linux下单个进程可以用到4G内存。

64位的系统:

windows下单个进程Intel Itanium-based可用到7TB,Windows 8.1和Windows Server 2012

R2:可用128,其它版本TBx64: 8 TB

但是不同版本windows系统可用的最大物理内存数也有限制,比如64位win7家庭基本版只能认出8G内存,专业版以上能认出192G内存。

linux下不同的发行商,或者不同的内核编译参数也会有也不同的限制,但都是按T计的。

python会占用多少内存?  第1张

Python 多进程内存占用问题

当我们有一个很长很长的任务队列(mission_list)和阈值对应的一个处理函数(missionFunction)时,我们一般采用如下的方式进行处理:

但是,如果这任务列表很长很长,处理函数很复杂(占用cpu)时,单核往往需要很长的时间进行处理,此时,Multiprocess便可以极大的提高我们程序的运行速度,相关内容请借鉴 multiprocessing --- 基于进程的并行 — Python 3.10.4 文档。

以上这种场景下,推荐大家采用最简单的进程池+map的方法进行处理,标准的写法, chunksize要借鉴官方的说法,最好大一点 :

但是!!!! 如果我们的任务列表非常的长,这会导致多进程还没跑起来之前,内存已经撑爆了,任务自然没法完成,此时我们有几种办法进行优化:

进程的启动方法有三种,可参考官方文档:

[图片上传失败...(image-48cd3c-1650511153989)]

在linux环境下,使用forkserver可以节省很多的内存空间, 因为进程启动的是一个服务,不会把主进程的数据全部复制

采用imap会极大的节省空间,它返回的是一个迭代器,也就是结果列表:

但注意,以上写法中,你写的结果迭代部分必须写在with下面。或者采用另一种写法:

还有最后一种,当你的mission list实在太大了,导致你在生成 mission list的时候已经把内存撑爆了,这个时候就得优化 mission_list了,如果你的mission_list是通过一个for循环生成的,你可以使用yield字段,将其封装为一个迭代器,传入进程池:

这样子,我们就封装好了mission_list,它是一个可迭代对象,在取数据的时候才会将数据拉到内存

我在项目中结合了后两种方法,原本256G的内存都不够用,但在修改后内存只占用了不到10G。希望能够帮助到你

python创建类占用内存

2g。python创建类占用内存有2g。Python由荷兰数学和计算机科学研究学会的吉多范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替代品。

python占内存大吗

你是问python的安装包嘛,如果是的话大概29M左右就够了,不怎么占内存。

python不运行时占内存吗

python不运行时占内存。根据查询相关公开信息显示:python不运行时也在磁盘文件中,而每一个对象在创建是都会在内存中开辟空间来占用位置,这样就会造成一开始的内存占用。

pythontimer占用内存

python程序在运行过程之中会单独开辟出一个进程来执行,而很多小伙伴都发现程序在运行过程之中所占用的内存会越来越大,但是不知道是什么原因以及如何解决。那么下文会来讲解一下python程序内存占用过大的原因和解决方法,感兴趣的和有需要的话就往下看看吧。

一、原因

首先需要知道的一点就是,python是面向对象编程的语言,那么就表示在其程序之中一切皆为对象。而每一个对象在创建是都会在内存中开辟空间来占用位置,这样就会造成一开始的内存占用。

虽然说python中有自己的内存管理机制和垃圾处理方式,但是它对于一些占用内存过多的对象不会马上释放,只有当这个对象不处于引用状态时才会处理它。

二、解决方法

既然知道了python程序内存都是因为有对象才将其占用的,那么正确的解决方法就是将对象在调用完毕之后马上删除掉。该方法需要用到关键字del和gc模块,使用del关键字删除变量之后,调用gc模块来马上启动python垃圾处理机制就可以直接将其彻底从内存空间清除,代码示例如下所示:

结语:以上就是首席CTO笔记为大家整理的关于python会占用多少内存的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于python会占用多少内存的相关内容别忘了在本站进行查找喔。

以上内容为新媒号(sinv.com.cn)为大家提供!新媒号,坚持更新大家所需的互联网后端知识。希望您喜欢!

版权申明:新媒号所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请发送邮件至 k2#88.com(替换@) 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023-09-23 13:06
下一篇 2023-09-23 13:06

相关推荐

发表回复

登录后才能评论