美文网首页
关于顺序表产生碎片原因的分析

关于顺序表产生碎片原因的分析

作者: 假程序员 | 来源:发表于2018-10-24 23:56 被阅读0次

        什么是顺序表?顺序表是物理结构连续的线性表,它并不要求该线性表在逻辑上也连续。其中物理结构连续,代表着,一个顺序表中的元素按照先后次序紧密地排列在存储空间中,即可认为该顺序表占用了一大段的连续存储空间。

        因为顺序表需要占用一整块连续的存储空间。如果多个不同大小的顺序表按左右顺序排列,释放掉中间的任意一个顺序表,并且它的左右相邻顺序表始终驻留。那么,所释放的那个顺序表所占的存储空间就会如一道缝隙留在原地。此时该缝隙最大只能存储缝隙大小的内容。若以小于这道缝隙大小的内容填充在这里,自然会形成一道更小的缝隙。而这种更小的缝隙是可以在程序运行时逐渐积累数量的,如果一个程序长时间运行,并且以一定频率产生这种缝隙,久而久之,这类缝隙越来越多,且所有缝隙无法被使用。这就是所谓的碎片。

20190531更新:

在阅读数据结构一书时,在<动态存储管理>章节中<可利用空间表及分配方法>小节中有三种分配策略,分别是首次拟合法、最佳拟合法和最差拟合法。其中最佳拟合法定义为:将可利用空间表中一个不小于n且最接近n的空闲块的一部分分配给用户。因为根据改分配原则进行分配时,总是找大小最接近请求的内存块,因此系统中可能产生一些存储量甚小而无法利用的小片内存。而与顺序表相似的是首次拟合法。首次拟合法的分配是随机的,介于最佳拟合法和最差拟合法之间。

相关文章

  • 关于顺序表产生碎片原因的分析

    什么是顺序表?顺序表是物理结构连续的线性表,它并不要求该线性表在逻辑上也连续。其中物理结构连续,代表着,一...

  • mysql 表空间收缩_MySQL 清除表空间碎片

    MySQL 清除表空间碎片的实例详解 碎片产生的原因 (1)表的存储会出现碎片化,每当删除了一行内容,该段空间就会...

  • 关于顺序表

    顺序表的特点:以物理位置相邻来表示逻辑关系。顺序表的优点:任一元素均可随机存取。顺序表的优点:在进行插入和删除操作...

  • MySQL的语句

    语法顺序 执行顺序 FORM: 对FROM的左边的表和右边的表计算笛卡尔积。产生虚表VT1 ON: 对虚表VT1进...

  • MYSQL越来越慢了? 你可能需要清理数据库碎片了

    碎片产生的原因 (1)表的存储会出现碎片化,每当删除了一行内容,该段空间就会变为空白、被留空,而在一段时间内的大量...

  • 线性表(二)——单链表的表示和实现

    在上篇文章中我们分析讨论了线性表的顺序存储结构顺序表的原理和实现,这篇文章将分析讨论线性表另外一种存储结构链式存储...

  • 闲谈碎片化时间

    碎片化时间即因工作、生活等原因产生的零碎时间,前几年的时候碎片化阅读概念很是火爆,关于其利弊的争论也始终没个结论,...

  • [Postgres] 如何读懂执行计划:计划节点

    1. 扫描节点 1.1 Seq Scan 功能:基于堆表的顺序扫描 特点:适合于小表的查询操作,会产生顺序的磁盘访...

  • 线性表之 链表

      上节分析了顺序表,这次我们分析一下链表,并简单手写一个单链表.   顺序表的特征上一节已经讲过:尾插效率高,支...

  • 树、二叉树

        前面几节分析了表的数据结构以及算法,包括顺序表、链表、hash表以及栈和队列。后面的几节我们讲开始分析树。...

网友评论

      本文标题:关于顺序表产生碎片原因的分析

      本文链接:https://www.haomeiwen.com/subject/tjbftqtx.html