2011-05-28 2 views
2

J'essaie de trouver une bibliothèque de gestion de mémoire pour C++ qui allouerait à partir d'un bloc de mémoire pré-alloué que je lui donnerais afin de l'initialiser. Après que j'ai fini, je vais fermer l'allocateur (et les objets) et libérer le bloc préallouégestionnaire de mémoire qui gère un bloc pré-alloué

Est-ce que quelque chose comme ça existe déjà?

+1

piscine Boost allocateur? – dcousens

+0

il semble que cela fonctionne uniquement avec des objets de la même taille – lurscher

+0

peut-être un peu hors sujet, je suppose qu'il serait facile pour tout allocateur de soutenir cela, fournir un rappel pour l'utilisateur de fournir un bloc de mémoire quand la mémoire est sortie. –

Répondre

1

Ces répartiteurs sont nombreux. dlmalloc est l'un des plus populaires (et cela a bien fonctionné pour nous). Doug Lea a malloc.c et malloc.h disponibles pour le téléchargement, et il existe également plusieurs dérivés de son code d'origine qui sont emballés de manière peut-être plus pratique, tels que ptmalloc.

+0

merci, le README ptmalloc dit que leur version nothreads est hors service, ce qui est dommage car j'espère utiliser un gestionnaire de mémoire personnalisé qui suppose un seul thread (pas de surcharge de verrouillage) – lurscher

+0

@lurscher La base dlmalloc (Doug Lea's malloc.c) peut être ce que vous voulez, alors; son code de verrouillage du fil est plus facilement supprimé. – Crashworks

Questions connexes