Frage

ich geschrieben habe einen c / c ++ Speicher-Manager für Heapzuweisungen (überladene neu / löschen und malloc / realloc / frei, basierend auf Doug Lea malloc aber gestaltet werden warten frei) und scheint einige Probleme mit der Fragmentierung zu haben. Gibt es aus keine gute Ressourcen gibt, die detailliert gute Strategien zur Vermeidung von Fragmentierung über die Manager?

Bitte beachten Sie, dass ich nicht Speicher neu anordnen kann, die bereits zugeordnet worden ist (nicht mit Smart-Pointer mit GUIDs) und Umschreiben der Systempools zu verwenden, anstatt Heapzuweisungen ist nicht machbar.

Danke,
Zuschuss

War es hilfreich?

Lösung

Sie möchten vielleicht Inspiration von jemalloc bekommen ( http: // people.freebsd.org/~jasone/jemalloc/bsdcan2006/jemalloc.pdf ) - dieses allocator wird im neuen Firefox ausdrücklich wegen seiner anti-Fragmentierung Fähigkeiten

.

Andere Tipps

Haben Sie einen Blick an, wie reifere Projekte wie glibc es tun.

Eine schnelle Google findet diese , mit ein Stapel von Artikeln.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top