Python如何进行内存管理

Python如何进行内存管理,第1张

Python的内存管理,一般从以下三个方面来说:

1)对象的引用计数机制(四增五减)

2)垃圾回收机制(手动自动,分代回收)

3)内存池机制(大m小p)

1)对象的引用计数机制

要保持追踪内存中的对象,Python使用了引用计数这一简单的技术。sysgetrefcount(a)可以查看a对象的引用计数,但是比正常计数大1,因为调用函数的时候传入a,这会让a的引用计数+1

2)垃圾回收机制

吃太多,总会变胖,Python也是这样。当Python中的对象越来越多,它们将占据越来越大的内存。不过你不用太担心Python的体形,它会在适当的时候“减肥”,启动垃圾回收(garbage

collection),将没用的对象清除

从基本原理上,当Python的某个对象的引用计数降为0时,说明没有任何引用指向该对象,该对象就成为要被回收的垃圾了

比如某个新建对象,它被分配给某个引用,对象的引用计数变为1。如果引用被删除,对象的引用计数为0,那么该对象就可以被垃圾回收。

然而,减肥是个昂贵而费力的事情。垃圾回收时,Python不能进行其它的任务。频繁的垃圾回收将大大降低Python的工作效率。如果内存中的对象不多,就没有必要总启动垃圾回收。

所以,Python只会在特定条件下,自动启动垃圾回收。当Python运行时,会记录其中分配对象(object

allocation)和取消分配对象(object deallocation)的次数。当两者的差值高于某个阈值时,垃圾回收才会启动。

我们可以通过gc模块的get_threshold()方法,查看该阈值。

3)内存池机制

Python中有分为大内存和小内存:(256K为界限分大小内存)

1、大内存使用malloc进行分配

2、小内存使用内存池进行分配

python中的内存管理机制都有两套实现,一套是针对小对象,就是大小小于256K时,pymalloc会在内存池中申请内存空间;当大于256K时,则会直接执行系统的malloc的行为来申请内存空间。

Android的adb命令可以获取手机的基础信息,比如:电池、网络、内存等等,所以下面使用python的os模块来获取手机的电池电量以及充电状态

注意:手机必须连接到电脑,并打开手机的USB调试模式才能够获取到电池信息。

>>> import psutil

>>> psutilcpu_times()

scputimes(user=396146, nice=169729, system=2150659, idle=16900540, iowait=62959, irq=00, softirq=1942, steal=00, guest=0, nice=00)

>>>

>>> for x in range(3):

psutilcpu_percent(interval=1)

40

59

38

>>>

>>> for x in range(3):

psutilcpu_percent(interval=1, percpu=True)

[40, 69, 37, 92]

[70, 85, 24, 21]

[12, 90, 99, 72]

>>>

>>>

>>> for x in range(3):

psutilcpu_times_percent(interval=1, percpu=False)

scputimes(user=15, nice=00, system=05, idle=965, iowait=15, irq=00, softirq=00, steal=00, guest=00, guest_nice=00)

scputimes(user=10, nice=00, system=00, idle=990, iowait=00, irq=00, softirq=00, steal=00, guest=00, guest_nice=00)

scputimes(user=20, nice=00, system=00, idle=980, iowait=00, irq=00, softirq=00, steal=00, guest=00, guest_nice=00)

>>>

>>> psutilcpu_count()

4

>>> psutilcpu_count(logical=False)

2

>>>

一、开发使用

如果电脑配置比较低,又想学编程,建议学习不吃配置的程序语言,比如Python、HPH。各语言的配置要求如下,建议对比自己的电脑配置:

1、Java、前端

电脑配置:i5以上处理器,内存 8G以上(建议16G)、硬盘256G以上,固态硬盘最佳,64位Window系统。(如购买笔记本,建议够买内存可扩展的型号)

2、Python

电脑配置:最低配置内存不低于4GB,对显卡没有要求;一般i5处理器,硬盘256G以上。

3、Python+大数据、大数据

电脑配置要求:处理器i5或者i7或以上,四核、内存16G、硬盘1T,独显2G以上。

4、C/C++、Go区块链

电脑配置要求:处理器i5或者i7或以上,四核、内存8G或以上、硬盘1T,独显2G以上

5、Linux云计算+运维开发

电脑配置要求:CPU i5及以上处理器,内存8G以上最少,硬盘500G以上。

6、HPH全栈

电脑配置要求:CPUi3以上处理器,内存4G以上,硬盘250G以上

二、软件开发台式电脑配置推荐

正常情况下 8000左右的电脑都可以 。如果是三A大作 这种还想要 良好的体验 最好能上12000 当然这个是主机的部分 显示器另算 。

因为你要是玩网游的话 那屏幕大点,主要看144以上刷新就好 如果是考虑到三A的画质度的话 最好能选4K。

显卡就选老黄的吧 ,CPU部分 当然英特尔更香了 存储部分尽可能都用固态吧 。最主要的是电源能选1kw左右

The module - psutil is what you want

easy_install psutil

or

pip install psutil

-

以上就是关于Python如何进行内存管理全部的内容,包括:Python如何进行内存管理、[Python实例] python获取安卓手机的手机电量以及充电状态、python如何获取服务器硬件状态信息,包括CPU温度、硬盘温度、主板电池电压、主机电源电压、CPU风扇转速等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9799494.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存