Qu'est-ce que la fragmentation de la mémoire?

J'ai entendu le terme "fragmentation de la mémoire" utilisé à quelques reprises dans le cadre de C++ allocation dynamique de la mémoire. J'ai trouvé quelques questions sur la façon de traiter avec la fragmentation de la mémoire, mais ne peut pas trouver une question directe qui traite avec lui. Donc:

  • Qu'est-ce que la fragmentation de la mémoire?
  • Comment puis-je savoir si une fragmentation de la mémoire est un problème pour mon application? Ce genre de programme est susceptible de souffrir le plus?
  • Que sont le bien commun des moyens pour traiter la fragmentation de la mémoire?

Aussi:

  • J'ai entendu à l'aide des allocations dynamiques, beaucoup de choses peuvent augmenter la fragmentation de la mémoire. Est-ce vrai? Dans le contexte de C++, je comprends tous les conteneurs standard (std::string, std::vector, etc) utiliser l'allocation dynamique de la mémoire. Si ceux-ci sont utilisés tout au long d'un programme (std::string), est la fragmentation de la mémoire plus de chances d'être un problème?
  • Comment peut-fragmentation de la mémoire soit traitée avec STL-lourds de l'application?
  • Beaucoup de réponses, merci à tous!
  • Il y a déjà beaucoup de bonnes réponses, mais voici quelques photos d'un réel de l'application (Firefox), où la fragmentation de la mémoire a été un gros problème: blog.pavlov.net/2007/11/10/memory-fragmentation
  • le lien ne marche plus, c'est pourquoi il est important de fournir un bref résumé ainsi que le lien ou de répondre à la question avec un résumé avec le lien
  • Certes, mais c'est plus de la moitié d'une décennie
  • Ci-dessous est une mise à jour de l'emplacement pour les liens posté par Marius:pavlovdotnet.wordpress.com/2007/11/10/memory-fragmentation
  • Un très intéressant exemple dans la réalité du problème (Élémentaire de la Guerre de la Magie): youtu.être/_zD33Hrbo4Y

InformationsquelleAutor AshleysBrain | 2010-09-22