Что такое фрагментация кучи?
Пожалуйста поделитесь опытом по теме. Что это? Как ее выявить? Как с ней бороться? Может есть что-то важное на что нужно обратить внимание?
Ответы (1 шт):
Некоторое время назад я задавал похожий вопрос. Местные доброхоты закрыли его, но в обсуждении (перемещенном в чат другими доброхотами) осталось несколько интересных ссылок на ПО, которое обеспечивает (якобы) дефрагментацию кучи в рантайме. Вот ссылка на обсуждение:
Как сейчас обстоят дела с фрагментацией кучи? [закрыт]
Ну а так по жизни - 99% приложений имеют сеансный характер и куча просто не успевает фрагментироваться. Остальные 1% приложений, которые должны работать с большим аптаймом, видно не используют кучу. Либо у них создаются-уничтожаются объекты сравнимого и более-менее постоянного (и маленького) размера, и тогда фрагментирования кучи не происходит.
Но есть еще вопрос о фрагментации системной кучи, то есть об объектах ОС, которые динамически создаются и уничтожаются в процессе работы. Этот вопрос тоже не очень ясен, как с этим борются (и побеждают) разработчики ОС.
UPD1:
Вот еще похожий вопрос: