titi035
Messages postés173Date d'inscriptionvendredi 13 janvier 2006StatutMembreDernière intervention10 mai 2010
-
7 avril 2006 à 17:39
titi035
Messages postés173Date d'inscriptionvendredi 13 janvier 2006StatutMembreDernière intervention10 mai 2010
-
10 avril 2006 à 10:13
Bonjour,
Je recherche quel serait le meilleur allocateur mémoire pour mon appli embarquée.
J'ai 10 Mo de RAM + flash à gérer dans un décodeur et des paquets de 50 à 150 ko environ à stoker dedans.
J'aimerais mettre en place (ou développer) un allocateur dont le taux de fragmentation reste raisonnable (<30%).
Est ce que vous avez une idée sur un bon allocateur mémoire ou un comparatif des allocateurs existants?
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 7 avril 2006 à 18:06
malloc. malloc revien à utiliser HeapAlloc mais plus simplement. HeapAlloc est pour les allocation de moin de 2 mo je crois. Sinon VirtualAlloc qui peut faire de grosse allocation mémoire. Va voir sur MSDN pour des renseignement la dessus. Si c'est pas ce que tu cherche, dit avec quel systeme tu programme (linux) ou sabir (.NET)
___________________________________________
Les plus grands esprits trouvent toujours une solution
titi035
Messages postés173Date d'inscriptionvendredi 13 janvier 2006StatutMembreDernière intervention10 mai 2010 8 avril 2006 à 02:17
Salut,
Je fait du C sur une palteforme ST. j'ai une couche driver assez proche d'un Linux.
Mais c'est un OS hybride maison. Donc, j'ai tout à faire concernant
l'allocateur memoire et j'essaie de voir ce qui peut se faire en la
matiere.
J'ai vu que SUN avait developper son propre algo nommé slab allocator,
mais je ne comprends pas bien la difference avec l'allocateur windows
ou linux pas exemple.
Titi035
Vous n’avez pas trouvé la réponse que vous recherchez ?
Bel0
Messages postés71Date d'inscriptionmercredi 14 avril 2004StatutMembreDernière intervention14 septembre 2007 9 avril 2006 à 00:28
Sous linux l'appel système pour allouer de la mémoir est brk(). Cette fonction n'est jamais appellée directement et on passe plutot par malloc (qui est défini dans la libraire standart: libc6). Il faudrait voir de quel appel système, tu disposes pour allouer de la mémoire et te basse sur le fonctionnement de malloc pour créer ton propre gestionnaire (Il doit exister des documents qui décrivent son fonctionnement).
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 9 avril 2006 à 14:55
on peut facilement avoir les sources de malloc. elle sont fournie avec VC98. Mais ya un problème. Dans toute platforme, malloc est redirigé vers la fonction allocatrice du système. Donc malloc en Windows revien a utiliser HeapAlloc et sous Linux brk. Sous Linux ya pas de probleme, les source sont disponible. Mais sous windows, bonne chance. Donc ton allocateur ne pourra pas allouer pour les deux systemes.
___________________________________________
Les plus grands esprits trouvent toujours une solution
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 9 avril 2006 à 17:29
Bon là je comprend pas tout. Ok. T'a fait une plaforme hybride et tu veut avoir un allocateur de mémoire qui permet d'allouer de la mémoire pour Linux et pour Windows.
___________________________________________
Les plus grands esprits trouvent toujours une solution