11 2018 档案

Conservative GC (Part two :MostlyCopyingGC )
摘要:[TOC] MostlyCopyingGC Mostly Copying GC, Joel F.Bartlett, 1989 此算法可以在不明确根的环境中运行GC复制算法。 概要 Mostly Copying GC就是“把不明确的根指向的对象以外的对象都进行复制”,抛开那些不能移动的对象将其他大部分 阅读全文

posted @ 2018-11-29 16:47 Léon_The_Pro 阅读(310) 评论(0) 推荐(0)

Conservative GC (Part one)
摘要:[toc] 保守式GC 保守式GC(Conservative GC)指“不能识别指针和非指针的GC” 不明确的根 不明确的根(ambiguous roots),下面三类都可以作为根。 事实上是不明确的根 寄存器 调用栈 全局变量空间 以栈为例 :在调用栈中有调用帧(call frame),调用帧里面 阅读全文

posted @ 2018-11-26 06:43 Léon_The_Pro 阅读(396) 评论(0) 推荐(0)

Mark Compact GC (Part two :Two-Finger)
摘要:[toc] Two Finger算法 Robert A.Saunders 对堆执行两次搜索 前提 Two Finger 算法, 必须将所有对象整理成大小一致 。它没有在对象的头中设立forwarding指针,而是 在对象的域中设立forwarding指针 即可。 概要 Two Finger算法由一下 阅读全文

posted @ 2018-11-26 02:49 Léon_The_Pro 阅读(386) 评论(0) 推荐(0)

Mark Compact GC (Part one: Lisp2)
摘要:[toc] 什么是GC 标记 压缩算法 需要对标记清除和GC复制算法有一定了解 GC标记 压缩算法是由 标记阶段 和 压缩阶段 构成。 标记阶段和标记清除的标记阶段完全一样。之后我们要通过搜索数次堆来进行压缩。 Lisp2 算法的对象 Donald E.Knuth 对象结构如图示: Lisp2 算法 阅读全文

posted @ 2018-11-26 02:40 Léon_The_Pro 阅读(556) 评论(0) 推荐(0)

Copying GC (Part two :Multi Space Copying GC)
摘要:[toc] 近似深度优先搜索方法 Paul R.Wilson、Michael S.Lam、Thomas G.Moher,1991 这个方法只是近似深度优先搜索,但可以做到深度优先执行GC复制算法。 Cheney的GC复制算法 假设所有对象都是2个字,下图所示是对象间的引用关系。 下图所示是执行该算法 阅读全文

posted @ 2018-11-26 02:35 Léon_The_Pro 阅读(330) 评论(0) 推荐(0)

Copying GC (Part one)
摘要:[toc] GC复制算法 Copying GC,Marvin L.Minsky,1963 该算法吧某个空间里的活动对象复制到其他空间,把原空间里的所有对象进行回收。再此我们 把复制活动对象的空间称为From空间,将粘贴活动对象的空间称为To空间 。 先介绍Robert R.Fenichel与Jero 阅读全文

posted @ 2018-11-20 22:50 Léon_The_Pro 阅读(450) 评论(0) 推荐(0)

Reference Counting GC (Part two :Partial Mark & Sweep)
摘要:[toc] 部分标记清除算法 Partial Mark & Sweep,Rafael D.Lins,1992 之前我们说过,引用计数的循环引用问题。这个问题可以通过标记清除算法辅助解决。但是这种方法效率很低,标记清除是单纯的为了回收有循环引用的垃圾,而这种垃圾又是很少的。单纯的GC标记清除算法又是以 阅读全文

posted @ 2018-11-20 14:27 Léon_The_Pro 阅读(406) 评论(0) 推荐(0)

Reference Counting GC (Part one)
摘要:[toc] 引用计数法 George E.Collins.1960. 引用计数算法中引入了一个概念 计数器 。计数器代表对象被 引用的次数 ,它是无符号正整数用于计数器的位数根据算法和实现有所不同。本文结构如下图所示。 在变更数组元素等的时候会进行指针的更新。通过更新指针,可能会产生没有被任何程序引 阅读全文

posted @ 2018-11-19 22:48 Léon_The_Pro 阅读(340) 评论(0) 推荐(0)

Union File System
摘要:[toc] Union File System Union File System, 简称UnionFS,是一种为Linux,FreeBSD,和NetBSD操作系统设计的把其他文件系统联合挂载到一个挂载点的文件系统服务。 它通过使用branch把不同文件系统的文件和目录覆盖,形成一个一致的文件系统。 阅读全文

posted @ 2018-11-14 02:00 Léon_The_Pro 阅读(1158) 评论(0) 推荐(1)

Linux Cgroups
摘要:[toc] Linux Cgroups Namespace是用來實現進程之間的隔離,但是并没有限制其空间的大小。如果想要限制一个进程可以使用的空间,保证各个进程之间不会互相争抢就要用到 Cgroups。 Linux Cgroups(Linux Control Groups)提供了对一组进程及将来子进 阅读全文

posted @ 2018-11-13 19:48 Léon_The_Pro 阅读(455) 评论(0) 推荐(0)

Mark Sweep GC
摘要:[toc] 标记清除算法 GC 标记 清除算法是由 标记阶段 和 清除阶段 构成。标记阶段把所有活动的对象做上标记。清除阶段是吧没有标记的对象也就是非活动的对象进行回收。通过这两个阶段就可以对空间进行重新利用。 mark_sweep()函数 在执行GC前堆的状态 标记阶段 使用 mark_phase 阅读全文

posted @ 2018-11-13 04:49 Léon_The_Pro 阅读(394) 评论(0) 推荐(0)

数据结构之查找-哈希查找
摘要:[toc] 哈希法(计算式查找) 哈希法 又称散列法、杂凑发、关键字地址计算法,相应的表成为哈希表、散列表等。 哈希法的基本思想 :首先在元素的关键字k和元素的存储位置p之间建立一个对应关系H,是的p=H(k),H成为哈希函数。 五个因素 :①计算哈希函数所需的时间。②关键字长度。③哈希表的大小。④ 阅读全文

posted @ 2018-11-13 01:27 Léon_The_Pro 阅读(904) 评论(0) 推荐(0)

数据结构之查找-基于树的查找法
摘要:[toc] 基于树的查找法 基于树的查找法是将待查表组织成特定树的形式并在树结构上实现查找的方法,主要包括二叉排序树、平衡二叉树和B树等。 二叉排序树 二叉排序树的定义与描述 二叉排序树又称二叉查找树,它是一种特殊的二叉树。其定义为:二叉树排序树或者是一颗空树,或者是具有如下性质的二叉树。 ①若它的 阅读全文

posted @ 2018-11-13 01:25 Léon_The_Pro 阅读(1159) 评论(0) 推荐(0)

数据结构之查找-基于线性表的查找法
摘要:基于线性表的查找法 顺序查找 算法思想 用所给的元素与列表的中的各个元素进行比较,若相等返回索引,否则返回错误信息。 假设列表长度为$n$那么查找第$i$个元素时需进行$n i+1$次比较,即$C_i=n i+1$,又假设查找每个数据元素的概率相等,即$P_i =1/n$,则顺序查找成功的平均查找长 阅读全文

posted @ 2018-11-13 01:24 Léon_The_Pro 阅读(1029) 评论(0) 推荐(0)

查找-查找的基本概念
摘要:查找的基本概念 列表 由 同一类型 的数据(或记录) 元素 构成的 集合 ,可由任意数据结构实现。 关键字 数据元素的某个数据项的值,它可以表示列表中的一个或一组数据元素。如果一个关键字可以唯一标示列表中的一个元素,则称其为主关键字,否则为次关键字。当数据元素仅有一个数据项时,数据元素的值就是关键字 阅读全文

posted @ 2018-11-13 01:24 Léon_The_Pro 阅读(525) 评论(0) 推荐(0)

数据结构之内部排序--简单选择排序
摘要:[toc] 概要 IDE:Pycharm Python版本:python3.x 算法分类:内部排序 选择类排序 简单选择排序 算法思想 第一趟简单选择排序时,从第一个记录开始,通过$n 1$次关键字比较,从$n$个记录中选出关键字最小的记录,并和第一个记录进行交换。 第二趟,从第二个记录开始,通过$ 阅读全文

posted @ 2018-11-13 01:20 Léon_The_Pro 阅读(140) 评论(0) 推荐(0)

数据结构之内部排序--快速排序
摘要:概要 IDE:Pycharm Python版本:python3.x 算法分类:内部排序 交换类排序 快速排序 算法思想 待排序记录序列中选取一个记录为枢轴,其关键字为$k_1$,然后将其余关键字小于$k_1$的移到前面,大于$k_1$的移到后面,结果是待排序记录分为两个子表,最后将关键字$k_1$插 阅读全文

posted @ 2018-11-13 01:19 Léon_The_Pro 阅读(181) 评论(0) 推荐(0)

数据结构之内部排序--冒泡排序
摘要:概要 IDE:Pycharm Python版本:python3.x 算法分类:内部排序 交换类排序 冒泡排序 算法思想 反复扫描待排序记录序列,在扫描过程中顺次比较相邻元素,若逆序则交换位置。 以升序为例:在第一趟冒泡排序中,从第一个记录开始,扫描整个待排序列,若相邻逆序,交换位置。扫描过程中, 不 阅读全文

posted @ 2018-11-13 01:18 Léon_The_Pro 阅读(150) 评论(0) 推荐(0)

数据结构之内部排序--希尔排序
摘要:概要 IDE:Pycharm Python版本:python3.x 算法分类:内部排序 插入类排序 希尔排序 算法思想 希尔排序又称缩小增量排序法,是一种基于插入思想的排序方法。它利用了直接插入排序的最佳性质,首先,将待排序的关键字序列分成若干个较小的序列,对子序列进行直接的插入排序,使整个待排序列 阅读全文

posted @ 2018-11-13 01:17 Léon_The_Pro 阅读(247) 评论(0) 推荐(0)

数据结构之内部排序--折半插入排序
摘要:概要 IDE:Pycharm Python版本:python3.x 算法分类:内部排序 插入类排序 折半插入排序 算法思想 对于有序表进行折半查找,其性能优于顺序查找。所以,可以将折半查找的思想用于在 有序记录$r[1,2,3,...,i 1]$中确定插入位置,相应的排序算法称为折半插入排序。 例如 阅读全文

posted @ 2018-11-13 01:17 Léon_The_Pro 阅读(321) 评论(0) 推荐(0)

数据结构之内部排序--直接插入排序
摘要:概要 IDE:Pycharm Python版本:python3.x 算法分类:内部排序 插入类排序 直接插入排序 算法思想 直接插入排序是一种最基本的插入排序方法,其基本操作是将第$i$个记录插到前面$i 1$个记录中。然后将大于自身的记录从后往前依次向后移一位. 例如:将第$i$个记录的关键字$K 阅读全文

posted @ 2018-11-13 01:16 Léon_The_Pro 阅读(307) 评论(0) 推荐(0)

数据结构之内部排序--排序的基本概念
摘要:排序 有n个记录的序列${R_1,R_2,...,R_n}$,其相应的关键字的序列是${K_1,K_2,...,K_n}$,相应的下标序列1,2,...,n。通过排序,找出当前的下标序列1,2,...,n的一种排列$p_1,p_2,...,p_n$,使得相应的关键字满足如下的非递减(或者非递增)关系 阅读全文

posted @ 2018-11-13 01:15 Léon_The_Pro 阅读(193) 评论(0) 推荐(0)

Ubuntu+PyQt5+Python3.6+Qt Designer 实现可视化窗口的编辑
摘要:一、为什么写这片博文 近期将实验室的电脑的OS换成了ubuntu,想对linux进一步的了解和使用。在使用的过程中想用python+pyqt5写一个音乐播放器和视频播放器(这也是linux的乐趣所在),就开始学习了一段时间pyqt5,对pyqt5基本的操作熟悉了。 熟悉了pyqt5之后着手开始写播放 阅读全文

posted @ 2018-11-13 01:14 Léon_The_Pro 阅读(854) 评论(0) 推荐(0)

Linux Namespace
摘要:[toc] Linux Namespace Linux Namespace 是kernel的一个功能,用于隔离系统资源。比如说PID,User ID 等。(可以想象一下变成语言变量的命名空间)这样我们就可以将 进程,网络接口,挂载点以及用户做一个隔离。 比如说我们在同一台主机上,需要将资源分给多个类 阅读全文

posted @ 2018-11-12 20:41 Léon_The_Pro 阅读(309) 评论(0) 推荐(0)

导航