1.引用计数法
![在这里插入图片描述](https://img-blog.csdnimg.cn/ebd64225842844aca1765a87516ca85f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAcXFfMzc1MzQ5NDc=,size_20,color_FFFFFF,t_70,g_se,x_16) 注:类似于java,这个系统自动回收垃圾对象,明显有循环引用的弊端。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2538720ef7d44a28856579b3ea39dbe9.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAcXFfMzc1MzQ5NDc=,size_20,color_FFFFFF,t_70,g_se,x_16)
- 代码例子
import sys
import psutil
import os
import gc
print(gc.get_threshold())
def showMemSize(tag):
pid=os.getpid()
p=psutil.Process(pid)
info=p.memory_full_info()
memory=info.uss/1024/1024
print('{} memory used:{} MB'.format(tag,memory))
pass
def func():
showMemSize('初始化')
a=[i for i in range(10000000)]
b=[i for i in range(10000000)]
a.append(b)
b.append(a)
showMemSize('创建列表对象 a b 之后')
pass
func()
gc.collect()
showMemSize('完成时候的')
2.标记清除、分代收集算法
- 标记清楚:先标记对象,然后清除垃圾(java的可达性分析)
![在这里插入图片描述](https://img-blog.csdnimg.cn/101111fff6ad4018a1a206d7b899959e.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAcXFfMzc1MzQ5NDc=,size_13,color_FFFFFF,t_70,g_se,x_16)
3.小整数和大整数对象池(内存优化)
4.规范
- 缩进:4个空格的缩进
- 添加注释
- 命名规范:类–大驼峰法,方法–小驼峰法
5.命令行参数_sys
6.命令行参数_argparse
-
argparse为首选
parse=argparse.ArgumentParser(prog='my - 我自己的程序', usage='%(prog)s [options] usage',
description = 'my-编写自定义命令行的文件',epilog = 'my - epilog')
parse.add_argument('name',type=str, help='你自己的名字')
parse.add_argument('age',type=str,help='你的年龄')
parse.add_argument('-s','--sex',default='男', choices=['男','femal','女','male'],type=str,help='你的性别')
result=parse.parse_args()
print(result.name,result.age,result.sex)
-
构造对象的参数说明 ![在这里插入图片描述](https://img-blog.csdnimg.cn/c5453ccb24d14b3ebba61db880073afb.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAcXFfMzc1MzQ5NDc=,size_20,color_FFFFFF,t_70,g_se,x_16) -
参数的属性 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2ea53c20b6ea4497abeab9bac4c883cc.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAcXFfMzc1MzQ5NDc=,size_20,color_FFFFFF,t_70,g_se,x_16)
|