Я слышал, что термин "фрагментация памяти" используется несколько раз в контексте распределения динамической памяти С++. Я нашел несколько вопросов о том, как иметь дело с фрагментацией памяти, но не может найти прямой вопрос, который касается этого. Итак:
- Что такое фрагментация памяти?
- Как я могу определить, является ли фрагментация памяти проблемой для моего приложения? Какая программа, скорее всего, пострадает?
- Каковы хорошие общие способы борьбы с фрагментацией памяти?
также:
- Я слышал, что использование динамических распределений может значительно увеличить фрагментацию памяти. Это правда? В контексте С++ я понимаю, что все стандартные контейнеры (std::string, std::vector и т.д.) Используют распределение динамической памяти. Если они используются во всей программе (особенно std::string), скорее всего, проблема с фрагментацией памяти?
- Как можно разделить фрагментацию памяти в приложении STL-heavy?