@beduin01

На сколько фрагментация памяти замедляет работу системы и приложения?

Вопрос касается сборщика мусора. Как я понимаю хороший GC умеет выполнять дефрагментацию памяти т.е. после удаления объекта из памяти освободившиеся дырки ликвидируются.

Собственно вопрос -- на сколько ручное управление памятью приводит к фрагментации (вряд ли программисты в своем большинстве делают что-то большее кроме как простое удаление объекта).

На сколько падает производительность? Где про это дело почитать подробнее.

В каких задачах вы сталкивались с проблемами фрагментации памяти?
  • Вопрос задан
  • 558 просмотров
Решения вопроса 1
Aquarius-Michael
@Aquarius-Michael
Программист и железячник
Влияние фрагментации памяти на производительность хорошо выражено в тех системах, где существуют значительные задержки доступа к памяти прежде, чем выполнять чтение и запись. Поэтому для жёстких дисков и существует служба дефрагментации. А для памяти типа ОЗУ это делать ненужно и вредно. Потому что процессору придётся снова сбрасывать свой кэш преобразования адресов. А это уйдёт куда больше времени. Потому что с точки зрения преобразования адресов фрагментации памяти нет. То есть каждая задача видит память не замусоренной и линейной. Да и страничная организация памяти позволяет программистам жить лучше. Другое дело - сегментная организация памяти. Но они давно не используются. Сборщики мусора занимаются несколько другими задачами. Их задача - очистить память от неиспользуемых объектов в течение такого-то времени, чтобы потом не возникла проблема доступностью памяти для различных операций. Иначе произойдёт утечка памяти. Но они не занимаются дефрагментацией.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
gbg
@gbg
Любые ответы на любые вопросы
Правильно это называть "Фрагментация адресного пространства". На 32 битной системе проблема действительно есть, и, в зависимости от задачи, может вылезти посадка скорости.

На 64 битной системе адресное пространство огромно, его тяжело фрагментировать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы