Программное обеспечение для дефрагментации памяти. Как это работает? Это работает? - PullRequest
1 голос
/ 23 марта 2011

Я читал статью о фрагментации памяти, когда вспомнил, что есть несколько примеров программного обеспечения, которое претендует на дефрагментацию памяти.Мне стало любопытно, как это работает?Работает ли это вообще?

РЕДАКТИРОВАТЬ: xappymah дал хороший аргумент против дефрагментации памяти в том, что процесс может быть очень удивлен, узнав, что его структура памяти внезапно изменилась.Но, как я понимаю, все еще существует возможность того, что ОС предоставит какой-то API для глобального управления памятью.Однако это кажется маловероятным, так как это может привести к возможности использовать его в злонамеренных целях, если он плохо спроектирован.Кто-нибудь знает, есть ли ОС, поддерживающая что-то подобное?

Ответы [ 2 ]

1 голос
/ 26 марта 2011

Реальная дефрагментация памяти на уровне процесса возможна только в управляемых средах, таких как, например, виртуальные машины Java, когда у вас есть какой-то доступ к объектам, выделенным в памяти, и вы можете управлять ими.

Но если мы говорим о неуправляемых приложениях, то нет возможности контролировать их память сторонними инструментами, потому что каждый процесс (и инструмент, и приложение) работает в своем собственном адресном пространстве и не имеет доступа к чужой, по крайней мере без помощи ОС. Однако даже если вы получите доступ к памяти другого процесса (взломав вашу ОС или еще) и начнете ее изменять, я думаю, что целевое приложение будет очень «удивлено». Представьте себе, вы выделили кусок памяти, получили его начальный адрес, и в следующую секунду этот кусок памяти перемещается куда-то еще из-за «VeryCoolMemoryDefragmenter»:)

0 голосов
/ 14 января 2014

На мой взгляд, память - это своего рода флэш-накопитель, и этот чип не фрагментирован, потому что на нем нет вращения дисков, записывающего и воспроизводящего информацию случайным образом, как детектор лжи.Это способ фрагментации жесткого диска.Вот почему SSD-накопители такие быстрые, эффективные, надежные и не требуют обслуживания.SSD - это БОЛЬШАЯ часть памяти, и она вроде как похожа.

...