
python底层分析
JackLiu16
stay hungry,stay young!
展开
-
Python内存管理机制
出处:https://www.cnblogs.com/geaozhang/articles/7111961.htmlPython的内存管理机制:引入计数、垃圾回收、内存池机制一、变量与对象关系图如下:1、变量,通过变量指针引用对象 变量指针指向具体对象的内存空间,取对象的值。2、对象,类型已知,每个对象都包含一个头部信息(头部信息:类型标识符和引用计数器)注意...转载 2019-03-02 20:44:59 · 329 阅读 · 0 评论 -
名词解释:Linux内存管理之RSS和VSZ
Linux内存管理中不管是top命令还是pmap命令,都会有RSS和VSZ这两个名词,这里解释一下:RSS( Resident Set Size )常驻内存集合大小,表示相应进程在RAM中占用了多少内存,并不包含在SWAP中占用的虚拟内存。即使是在内存中的使用了共享库的内存大小也一并计算在内,包含了完整的在stack和heap中的内存。VSZ (Virtual Memory Size),表...转载 2019-03-02 20:48:16 · 1130 阅读 · 0 评论 -
python
总结:1、从下面的分析中可知,进程内存包括链接其他库的“共享内存”,要节约内存,就需要使用“共享内存“的进程或线程越多,把“共享内存”中“内存页”考到,进程或线程的私有内存空间操作越少。2、但是Linux内核具有一种称为写入时复制(Copy-on-Write,CoW)的机制,用作fork 进程的优化。3、而python中对象结构体PyObject有一个元素记录对象应用计数,每次我们读...转载 2019-03-02 21:08:05 · 699 阅读 · 0 评论 -
Linux的进程优先级NI和PR到底有什么区别
总结:所有进程优先级范围:0~139实时进程:0~99 可以通过chrt调整设置查看非实时进程(用户进程):100~139 可以通过nice,renice调整-20~19top中的PR表示优先级,但是跟上述的值不是直接对等的。在top中,实时优先级的[0,99]没有具体的表示,统一用RT来表示。而静态优先级和top中的优先级关系为top_PR = static_Prior...转载 2019-03-03 00:18:23 · 2190 阅读 · 0 评论 -
多线程—线程的5种状态
总结:1、sleep(),wait(),join()主动睡眠wait(),join()主动等待是程序主动交出控制给系统2、进行io时,被同步块阻塞是程序被动交出控制给系统出处:https://www.cnblogs.com/domi22/p/8046851.html线程从创建、运行到结束总是处于下面五个状态之一:新建状态、就绪状态、运行状态、阻塞状态及死亡状态。...转载 2019-03-03 00:29:24 · 2015 阅读 · 0 评论 -
任务,任务的切换,(TCB)
task进程有任务的五种状态:休眠的状态,就绪的状态,运行的状态,中断的状态,挂起的状态。进程阻塞,状态切换,cpu时间分片给task。把process状态由running侧换为挂起,先把running的task在cpu中的数据复制出来保存到任务队列中,等待状态切换为running的时候使用1、用户级线程把整个线程实现部分放在用户空间中,内核对线程一无所知,内核看到的就是...转载 2018-11-27 11:29:50 · 2735 阅读 · 0 评论 -
Linux下回收子进程wait函数和waitpid函数的基本使用
1. 孤儿进程:父进程先于子进程结束,则子进程成为孤儿进程,子进程的父进程变为init进程 。2. 僵尸进程:子进程终止了,父进程尚未回收子进程,子进程残留资源(PCB)存放于内核中,子进程变成僵尸(Zombie)进程。问:那为什么子进程要把PCB残留在内核里呢?答:因为子进程终止后,它会把终止信号等退出状态(不管正常终止还是异常终止都对应一个信号)保存在内核的PCB里面,只有这个...原创 2019-03-03 00:48:00 · 1535 阅读 · 0 评论