当我回忆起有几个声称对内存进行碎片整理的软件示例时,我正在阅读一篇关于内存碎片的文章。我很好奇,它是如何工作的?它有用吗?
修改 xappymah对内存碎片整理给出了一个很好的论据,因为一个过程可能会非常惊讶地发现它的内存布局突然改变了。但正如我所看到的那样,操作系统仍有可能为全局内存控制提供某种API。它看起来似乎有点不太可能,因为如果设计糟糕,它会产生恶意使用它的可能性。有没有人知道是否有支持某种类型的操作系统?
答案 0 :(得分:1)
进程级别的实际内存碎片整理只能在托管环境中实现,例如Java VM,当您对内存中分配的对象进行某种访问并可以管理它们时。
但是,如果我们谈论的是非托管应用程序,则无法使用第三方工具控制其内存,因为每个进程(工具和应用程序)都在自己的地址空间中运行,并且无法访问另一个,至少没有OS的帮助。 然而,即使你可以访问另一个进程的内存(通过黑客攻击你的操作系统等)并开始修改它,我认为目标应用程序会非常“惊讶”。 试想一下,你分配了一块内存,得到了它的起始地址,并且在下一秒,由于“VeryCoolMemoryDefragmenter”,这块内存被移到了其他地方:)
答案 1 :(得分:-2)
在我看来,它是一种闪存驱动器,这个芯片不会碎片化,因为没有转动磁盘引脚记录和播放信息,以随机方式,如测谎仪。这就是硬盘碎片的完成方式。这就是为什么SSD驱动器如此快速,有效,可靠且免维护的原因。 SSD它是一块很大的内存,看起来很像。