2010-05-26 6 views
1

Vous voulez explorer quelques gestionnaires de mémoire pour notre produit - boost, petit allocateur d'objets comme dans loki et un gestionnaire de mémoire disponible en interne dans notre entreprise. Avant d'en choisir une pour notre produit, nous voulons explorer toutes les options avec une petite application prototype qui ne doit pas être similaire à notre application en termes de fonctionnalité. Mon objectif est d'analyser la performance et le pic VM pour le même nombre d'allocation et de désallocation d'objets de taille variable - contigus et non contigus. Cela devrait fonctionner avec les conteneurs std ou booster les librairies.Explorer le gestionnaire de mémoire

Une idée comment aller pour une telle application prototype? Notre application n'est pas MT - mais à l'avenir nous avons des plans pour cela. Toute suggestion serait une aide précieuse. Avoir ce qu'on appelle le hasard en termes d'allocation d'objets comme une application réelle serait génial.

En outre, suggérant un autre gestionnaire de mémoire disponible dans le domaine public serait d'une grande aide.Nous sommes principalement sur Linux 32b et 64b.

Répondre

0

Nous avons ajouté un petit allocateur d'objets basé sur boost à notre système en moins de 2 heures. C'est vraiment simple à mettre en place tant que vous avez accès à votre propre malloc/nouvelles choses. Ensuite, vous pouvez mesurer contre votre propre projet.

A défaut, profilez l'empreinte de votre application mémoire - dites qu'elle imprime/enregistre toutes les allocations de mémoire dans un fichier pendant quelques minutes ou à une taille, puis prenez ce journal et créez une nouvelle application qui ne fait que ces allocations et libère (avec et sans le petit allocateur d'objets) - et peut-être compte des nombres premiers ou quelque chose entre allocs pour simuler des échecs de cache.

1

Ceci est une question étrange. Vous ne devriez jamais considérer un allocateur de mémoire personnalisé si vous essayez de résoudre un problème très spécifique avec celui qui est intégré dans votre CRT. Ce qui devrait offrir une approche immédiate pour tester cet autre allocateur: voyez s'il résout ce problème.

Si vous ne faites que cela parce que cela "semble être une bonne idée", alors ne le faites pas. Ce n'est pas. Celui intégré dans le CRT est déjà fortement optimisé.

Questions connexes