昨天内容回顾

1.  操作文件的三个步骤:

1.  打开文件:硬盘的空间被操作系统持有,文件对象被用用程序持续

2.  操作文件:读写操作

3.  释放文件:释放操作系统对硬盘空间的持有

2.  基础的读写

with open('1.txt', 'r', encoding='utf-8') as rf, open('2.txt', 'w', encoding='utf-8') as wf:
  rf.read() # 一次性读完
  rf.read(10) # 读取10个字符
  rf.readline() # 一次读一行
  rf.readlines() # 将所有行读出,存放为一个list

wf.write('写入的内容')
wf.flush() # 主动将内存的数据刷新到硬盘
wf.writelines(['123\n', '456\n'])

3.边读边写:重点

with open('1.txt', 'r', encoding='utf-8') as rf:
  with open('2.txt', 'w', encoding='utf-8') as wf:
    for line in rf:
    wf.write(line)

4.  模式

主模式:r | w | a | x
r: 文件必须有的读,游标默认在开头,游标可以移动
w:文件有清空,无创建的写模式,虽然游标可以移动,但该模式一定会清空文件
a:文件有追加,无创建的写模式,游标永远从末尾开始操作
x:文件无创建写,有报错

从模式:t | b | +
t:默认模式,以字符形式操作
b:以字节形式操作
+:可读可写

5.seek(offset, type)

-- offset: 偏移的字节数
-- type:0 - 游标从头开始 | 1 - 游标从当前开始 | 2 - 游标从末尾开始
-- 游标操作必须在rb模式下

今日主要内容

1.  引用计数:垃圾回收机制的的机制

1.  变量的值被引用,该值的引用计数 +1

2.  变量的值被解绑,该值的引用计数  -1

3.  用计数为0时就会被垃圾回收机制回收

2.  引用计数会出现循环引用问题:相互引用无法释放

1.  连个变量引用其值,值之间又相互引用

2.  变量与值进行解绑,但是值之间还存在相互引用,导致值的引用计数永远是 >0

3.  引用计数>0的值永远无法被引用计数机制回收导致内存泄露

3.  标记清除:解决循环引用问题

所有线程能访问的栈区变量,称为 gc roots对象

1.  所有gc roots对象可以直接或间接访问到的变量值,都会被 标记机制 标记为存活状态

2.  将所有存活状态的值形成新的拷贝,变量完成重新引用

3.  清楚机制 会将之前所产生的值都进行回收

4.  分代回收:采用的还是引用计数来回收,是对该机制的一个优化

1.  杠产生的变量值房子啊新生代中高频率检查,如果引用计数为0,就是采用引用计数机制回收,长期存活变量值经过多次检查后会提高分代

2.  分代越高,检查频率越低,且还能继续提高一直存活的变量值的分代,从而来提高整体垃圾回收机制的效率。

Python--day09(内存管理、垃圾回收机制)的更多相关文章

  1. [CLR via C#]21. 自动内存管理(垃圾回收机制)

    目录 理解垃圾回收平台的基本工作原理 垃圾回收算法 垃圾回收与调试 使用终结操作来释放本地资源 对托管资源使用终结操作 是什么导致Finalize方法被调用 终结操作揭秘 Dispose模式:强制对象 ...

  2. python内存管理&垃圾回收

    python内存管理&垃圾回收 引用计数器 环装双向列表refchain 在python程序中创建的任何对象都会放在refchain连表中 name = '张三' age = 18 hobby ...

  3. [Python之路] 内存管理&垃圾回收

    一.python源码 1.准备源码 下载Python源码:https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz 解压得到文件夹: 我们主要关 ...

  4. Java 类加载机制 ClassLoader Class.forName 内存管理 垃圾回收GC

    [转载] :http://my.oschina.net/rouchongzi/blog/171046 Java之类加载机制 类加载是Java程序运行的第一步,研究类的加载有助于了解JVM执行过程,并指 ...

  5. python之MRO和垃圾回收机制

    一.MOR 1.C3算法简介 为了解决原来基于深度优先搜索算法不满足本地优先级,和单调性的问题. python2.3版本之后不管是新式类还是经典类,查找继承顺序都采用C3算法 2.算法原理 C3算法的 ...

  6. python 全局变量与局部变量 垃圾回收机制

    掌握L.E.G.B(作用域) 掌握局部作用域修改全局变量 步骤- 1.命名空间和作用域 命名空间:变量名称与值的映射关系作用域:变量作用的区域,即范围. 注意:class/def/模块会产生作用域:分 ...

  7. 内存管理 垃圾回收 C语言内存分配 垃圾回收3大算法 引用计数3个缺点

    小结: 1.垃圾回收的本质:找到并回收不再被使用的内存空间: 2.标记清除方式和复制收集方式的对比: 3.复制收集方式的局部性优点: https://en.wikipedia.org/wiki/C_( ...

  8. Python垃圾回收机制--完美讲解!

    转自: http://www.jianshu.com/p/1e375fb40506 先来个概述,第二部分的画述才是厉害的. Garbage collection(GC) 现在的高级语言如java,c# ...

  9. python垃圾回收机制(Garbage collection)

    由于面试中遇到了垃圾回收的问题,转载学习和总结这个问题. 在C/C++中采用用户自己管理维护内存的方式.自己管理内存极其自由,可以任意申请内存,但也为大量内存泄露.悬空指针等bug埋下隐患. 因此在现 ...

  10. 浅谈python垃圾回收机制

    引入 ​ 解释器在执行到定义变量的语法时,会申请内存空间来存放变量的值,而内存的容量是有限的,这就涉及到变量值所占用内存空间的回收问题,当一个变量值没有用了(简称垃圾)就应该将其占用的内存给回收掉,那 ...

随机推荐

  1. 微信小程序页面跳转方法和携带参数详解

    1.页面跳转方式     (1)标签跳转   open-type的属性值对应api里的用法即wx.的用法   1 <navigator url="/page/navigate/navi ...

  2. Java数据结构和算法 - 简单排序

    Q: 冒泡排序? A: 1) 比较相邻的元素.如果第一个比第二个大,就交换它们两个; 2) 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数; 3) 针 ...

  3. 跟我一起学opencv 第一课之图像加载,修改,保存

    使用opencv前记得引入库和头文件: #include<opencv2\opencv.hpp> 1.加载图像(cv::imread)(OPENCV 支持 JPG,PNG,TIFF等常见格 ...

  4. android学习---下拉刷新组建

    Google官方的下拉刷新组建 activity代码实现: /** * The SwipeRefreshLayout should be used whenever the user * can re ...

  5. (转)学习MySQL优化原理,这一篇就够了!

    原文:https://mp.weixin.qq.com/s__biz=MzI4NTA1MDEwNg==&mid=2650763421&idx=1&sn=2515421f09c1 ...

  6. 行为驱动:Cucumber + Selenium + Java(五) - 使用maven来实现cucumber测试和报告

    在上一篇中,我们介绍了Selenium + Cucumber + Java框架下的测试用例参数化/数据驱动,这一篇我们来使用maven去搭建cucumber框架以及实现测试报告. 5.1 为什么要用m ...

  7. 初探Parcel

    昨天趁有点时间看了前不久很火的构建工具Parcel,这里说下初步使用的感受,尤其是将其放到实际项目中和Webpack进行比较. 一.前言 首先说下笔者目前的技术栈.最近的前端项目主要以管理后台为主,技 ...

  8. 8-Flink中的窗口

    戳更多文章: 1-Flink入门 2-本地环境搭建&构建第一个Flink应用 3-DataSet API 4-DataSteam API 5-集群部署 6-分布式缓存 7-重启策略 8-Fli ...

  9. 微信小程序开发04-打造自己的UI库

    前言 github地址:https://github.com/yexiaochai/wxdemo 接上文继续,我们前面学习了小程序的生命周期.小程序的标签.小程序的样式,后面我们写了一个简单的load ...

  10. .NET Core和.NET Standard有什么不同

        近日,微软发布了.NET Core 2.0,但是开发人员中间仍然存在一些疑惑,就是.NET Core..NET Standard.Xamarin和.NET Framework有什么不同. .N ...