0

Подскажите пожалуйста, вот якобы поговаривают, что, если постоянно, непрерывно выделять и освобождать небольшие куски памяти ну грубо скажем от 100 байт до 2Кбайт, к примеру std::list`ом к примеру в условном северном приложении - то якобы может случится фрагментация памяти ну или адресного пространства и может получится так, что памяти реально много - условно 1 Гб, а выделит память под объектом размером всего 1Кб уже не удается.

Такое реально возможно в современных ОС ?

Optimus1
  • 1,045
  • 2
    в 32битных может. в 64 - не уверен, но тут может быть другая проблема - менеждер памяти может долго бегать по свои структурам в поисках следующего места для выделения памяти. Плюс, данные теперь могут лежать разбросанными по всей памяти, а это плохо для кеша. И получается просадка на ровном месте. я когда то экспериментировал с этим на реальном боевом приложеними - у меня был список клиентов, всего то около 1000, но в него часто добавляли-удаляли и бегали по нему. И замена вектора на list дала невероятную просадку. – KoVadim Sep 23 '21 at 16:33
  • 2
    Связанный вопрос: Фрагментация памяти. – wololo Sep 23 '21 at 16:44
  • 2
    Возможный дубликат вопроса: Фрагментация памяти – Mikhajlo Sep 24 '21 at 04:20

0 Answers0