空间管理 - 碎片化问题及解决思路


如需转载请标明出处:http://blog.csdn.net/itas109
QQ技术交流群:129518033

文章目录

  • 空间管理 - 碎片化问题及解决思路
    • 1.什么是空间碎片化?
    • 2.为什么会产生碎片?
      • 2.1 空间使用的过程
      • 2.2 碎片化原因
    • 3.如何做碎片优化?
      • 3.1 手动优化
        • 3.1.1 设置合理的空间管理机制
        • 3.1.2 尽可能使用连续空间
        • 3.1.3 手动整理空间法
        • 3.1.4 暴力重置法
      • 3.2 自动优化
        • 3.2.1 定时优化
        • 3.2.2 合理化重复使用
    • 4.应用
      • 4.1 数据库
        • 4.1.1 手动整理空间法
        • 4.1.2 暴力重置法
      • 4.2 操作系统
      • 4.3 指针问题
      • 4.4 Java等的内存回收机制
    • 5.为什么不实时整理碎片呢?
    • 6.处理碎片化的意义

相关:

  • 数据库表空间释放(Mysql、SQLite、PosgreSQL、Oracle)
  • 操作系统空间回收(Windows、Linux)
  • C++指针空间回收
  • Java等垃圾回收机制
  • 硬盘空间、内存空间

1.什么是空间碎片化?

空间碎片化:空间(硬盘物理空间、内存等)在长时间使用后,造成空间块不连续的现象,叫做空间碎片化。空间使用的时间越长,碎片化就越严重。

2.为什么会产生碎片?

2.1 空间使用的过程

A.空间从来未被使用的阶段
这个阶段,未使用的空间是连续的。这时,系统是没有碎片的。

B.空间开始被使用
这个阶段,由于空间很充足,所以空间分配也不是问题

C.空间被删除
由于空间的删除基本不可能使剩余的空间连续,所以这个阶段是产生碎片的阶段

D.空间再次被使用
请求新的空间使用时,系统会根据剩余的空间情况,分配合适的空间给新的请求。但是,由于总有空间不能满足新的请求,所以这个阶段总会加剧碎片化问题

E.重复空间使用和删除的过程

2.2 碎片化原因

经过上述过程的描述,我们可以知道碎片化问题正是由于空间不断被使用和释放导致的。因此,我们得到一个很无奈的结论:

只要空间一直在使用,空间的碎片化问题就不可避免。

3.如何做碎片优化?

碎片优化就是将无序的空间整理成有序的空间,尽可能的保持空间从未被使用过的状态。

3.1 手动优化

3.1.1 设置合理的空间管理机制

设置合理的空间管理机制,如操作系统的分页机制

3.1.2 尽可能使用连续空间

使用的时候进行合理的空间请求,如字节对齐引起的变量的声明顺序不同导致占用的总内存不同问题

3.1.3 手动整理空间法

将占用的空间整理成连续

3.1.4 暴力重置法

将需要整理的空间进行备份,清空整个空间,将备份还原,删除备份

3.2 自动优化

3.2.1 定时优化

在合适的时间对空间进行整理

3.2.2 合理化重复使用

当有新的空间请求时,合理的重复使用空间

4.应用

4.1 数据库

数据删除后,空间依旧被占用问题

4.1.1 手动整理空间法

MySQL:OPTIMIZE TABLE
PosgreSQL:vacuum
SQLite:vacuum
Oracle:Shrink Table

4.1.2 暴力重置法

数据备份,清空数据库,备份还原,清空备份

4.2 操作系统

苹果操作系统从文件系统底层和操作系统调度上就将文件碎片化的问题给屏蔽掉

4.3 指针问题

指针被释放后,表示这块内存可以被操作系统重新分配,但是指针还是指向这块儿内存的。虽然指针还是指向原来的位置,但是那一块内存随时都可能会被回收。

关于C++中delete释放内存时效性问题

4.4 Java等的内存回收机制

相对于指针的释放问题,Java的做法与苹果操作系统类似,采用有系统处理

5.为什么不实时整理碎片呢?

如果实时整理碎片,就会导致读写效率更低。因此,一般来说,进行删除操作后,对空间进行标记,表明该空间可以再次被使用(空间的释放也不是实时处理),在必要或者周期内进行整理。

6.处理碎片化的意义

提高空间的读写效率

Reference:
NULL

觉得文章对你有帮助,可以扫描二维码捐赠给博主,谢谢!

如需转载请标明出处:http://blog.csdn.net/itas109
QQ技术交流群:129518033


License

License under CC BY-NC-ND 4.0: 署名-非商业使用-禁止演绎

空间管理 - 碎片化问题及解决思路相关推荐

  1. 如何应对AIoT对芯片的碎片化需求?

    近几年,尤其是2018年以来,国产芯片产业迎来了前所未有的发展高潮.从政府到民间,智能物联网(AIoT)时代已来,AIoT设备开始部署在越来越多的领域.很多人家中已经拥有可以通过手机APP控制的嵌入了 ...

  2. linux 磁盘满了 预警,Linux磁盘空间满了的排查与解决思路

    block正常满 (磁盘实际不足) inode 满 大量的小文件 block 满 文件没有被彻底删除(硬链接数0 进程调用数不为0) 解放方法: 1 查看df -h 磁盘使用量根据占用量大小逐步逐步排 ...

  3. 本地管理表空间(LMT)与自动段空间管理(ASSM)概念(未看)

    本地管理表空间(LMT)与自动段空间管理(ASSM)概念 创建表空间时,extent management local 定义本地管理表空间(LMT),segment space management ...

  4. 碎片化学习的骗局-如何构建自己的知识体系

    一.前言 人生有好多事情,可以走捷径或者可以找人替代,唯有求知.成长无捷径及无法找人替代. 二.曾经的我 现在年底流行知识跨年,今年毫无例外的知识跨年又刷屏了,其中最出名的莫过于罗振宇的"时 ...

  5. 本地管理表空间(LMT)与自动段空间管理(ASSM)概念

    创建表空间时,extent management local 定义本地管理表空间(LMT),segment space management auto 定义自动段空间管理(ASSM). extent ...

  6. AI算力碎片化:矩阵乘法的启示

    尽管AI的发展取得了巨大进步,但编译器LLVM之父Chris Lattner认为,AI技术应用并不深入,远远没有发挥出已有机器学习研究的所有潜力.而AI系统和工具的单一化和碎片化正是造成这一问题的根源 ...

  7. 基于空间金字塔池化的卷积神经网络物体检测

    基于空间金字塔池化的卷积神经网络物体检测 原文地址:http://blog.csdn.net/hjimce/article/details/50187655 作者:hjimce 一.相关理论 本篇博文 ...

  8. CNN应用之SPP(基于空间金字塔池化的卷积神经网络物体检测)-ECCV 2014-未完待续

    基于空间金字塔池化的卷积神经网络物体检测 原文地址:http://blog.csdn.net/hjimce/article/details/50187655 作者:hjimce 一.相关理论 本篇博文 ...

  9. 深度学习(十九)基于空间金字塔池化的卷积神经网络物体检测-ECCV 2014

    基于空间金字塔池化的卷积神经网络物体检测 原文地址:http://blog.csdn.net/hjimce/article/details/50187655 作者:hjimce 一.相关理论 本篇博文 ...

  10. 深度学习(十九)基于空间金字塔池化的卷积神经网络物体检测

    基于空间金字塔池化的卷积神经网络物体检测 原文地址:http://blog.csdn.net/hjimce/article/details/50187655 作者:hjimce 一.相关理论 本篇博文 ...

最新文章

  1. python二分法递归_python 【递归 及 二分法】
  2. spring boot第七讲
  3. 神策数据全面支持苹果 ASA,全域归因方案再升级
  4. C++案例-评委打分
  5. 使用注解实现ssh整合
  6. 苹果公司的企业文化_百度、苹果、脉脉等互联网大厂的企业文化衫还能这么潮?...
  7. 7070mt安装ubuntu dell_【手把手AI项目】一、安装win10+linux-Ubuntu16.04的双系统(超细致)...
  8. icmp基于tcp还是udp_imi -- 基于PHP协程应用开发框架,支持WebSocket,TCP,UDP应用开发...
  9. 智能优化算法应用:基于麻雀搜索算法与双伽马校正的图像自适应增强算法 - 附代码
  10. 2017第八届(C/C++)B组蓝桥国赛题
  11. HTML CSS基础
  12. 字节实习成功提前转正啦!
  13. 磁盘介质受写入保护解决办法
  14. 机器学习实战(Machine Learning in Action)学习笔记————10.奇异值分解(SVD)原理、基于协同过滤的推荐引擎、数据降维...
  15. 域名到期查询如何查看?有什么新方法吗?
  16. 邮件客户端远程管理邮箱
  17. 什么是jquery?简单的jquery代码
  18. J2EE开发实战基础系列一 HelloWorld
  19. vp230引脚功能_正点原子阿波罗STM32F767
  20. Hand in glove 密切配合

热门文章

  1. 优动漫PAINT入门宝典(图层篇)——混合模式
  2. Android uses-sdk tools:overrideLibrary
  3. 用户使用什么命令访问远程计算机,远程桌面连接命令是什么 怎么使用命令连接远程服务器...
  4. vue中分割线的实现
  5. SuperMap的数据组织
  6. 图像的采样、频谱和分辨率
  7. phpnow升级mysql版本_phpnow1.5.6-1升级phpmyadmin,php及mysql版本
  8. 开机直接进入键盘布局_我win10开机显示选择键盘布局 进不了界面 求助啊
  9. 2021阿里云开发者大会——时隔两年平头哥有哪些杰作?
  10. UK EU 码对照表,USA EURO SIZE码对照表,国外衣服码对照表