当前位置:首页 > 内存 > 正文

内存碎片产生的原因

  • 内存
  • 2024-07-01 09:34:19
  • 5312

一、磁盘碎片是怎么产生的?

1.当应用程序需要较少的物理内存时,典型的操作系统会在硬盘上生成一个临时交换文件,并使用该文件占用的硬盘空间来释放内存。虚拟内存管理程序频繁读写硬盘,从而产生大量碎片。

2.删除中央簇(由扇区组成)的内容后,会写入一个新的较小文件,以便文件的每一侧都有空间。这种情况下,两段空间都无法容纳该文件,因此必须将文件分割成两部分,磁盘碎片再次出现。

3.下载是造成碎片的重要原因。例如,下载的视频文件被迫分成几个片段并保存在硬盘上。这时文件也被频繁地删除和添加,如果文件容量不够大,文件就会被频繁地删除和修改,使得这种情况更加严重。

更多信息:

准备清理磁盘碎片

1.垃圾清理

系统运行一段时间后,会收集大量的文件,例如安装程序时产生的临时文件、上网时留下的缓存文件、DLL文件等存在上网时留下的垃圾文件。对于关机等过程中生成的错误文件,我们建议使用微软的磁盘清理程序。您还可以使用更强大的软件或手动清理。

2.检查并修复硬盘错误。

使用Microsoft的“ScanDisk”程序对您的磁盘执行全面、深入的扫描。系统中的大多数错误都可以修复。

3.对磁盘进行碎片整理时,我们建议您关闭所有其他应用程序,包括屏幕保护程序,并将虚拟内存大小设置为固定值。当DiskDefragment检测到磁盘上的文件发生更改时,它会再次开始碎片整理。

参考来源:-磁盘碎片


二、为什么电脑磁盘碎片那么多C:(10%)D:(15%)是怎么产生的?事实上,磁盘碎片应该称为文件碎片,因为文件是分散保存在磁盘上的不同位置,而不是连续保存在磁盘上连续的簇中。当应用程序所需的物理内存不足时,一般操作系统会在硬盘上生成临时交换文件,并利用该文件占用的磁盘空间将其虚拟在内存中。虚拟内存管理器频繁读写硬盘,产生大量碎片。这是硬盘碎片的主要原因。其他设置如IE浏览器浏览信息时生成的临时文件或临时文件目录等也会导致系统产生大量碎片。1.虚拟内存。Windows系统在进行文件操作时,可能会调用虚拟内存来同步管理程序,导致各个程序对硬盘频繁读写,从而产生磁盘碎片。2.删除文件并将其写入硬盘。中央一个扇区的内容被擦除后,写入一个较小的文件,这样文件的两边都有空间。此时,另一个文件已写入,双方都无法托管该文件。,文件必须被分成两部分并且片再次发生。如果频繁删除和添加文件,如果文件空间不够大,就会产生大量的磁盘碎片,随着文件的频繁删除和修改,这种情况会越来越严重。3.下载占用大量空间的大文件,例如电影等。最常见的是下载大文件,例如电影。这段时间,一半人都会忙于其他事情,下载下来的电影文件将被迫分成几个片段,存储在硬盘上。因此,下载是碎片的重要来源。参考:


三、为什么malloc()和free()函数会产生很多内存碎片首先,分片分为内部分片和外部分片。内部碎片是指在执行malloc函数时,由于需要记录当前分配的块的信息,因此块内产生的信息。因此,一般malloc后实际占用的内存大小会略大于请求的大小(这也和内存对齐有关)。外部碎片就是上面提到的,重复使用后,堆中会产生不连续的可用内存块,这就是外部碎片。如果有需要,我可以给你提供模拟malloc过程的程序源代码。