Question

J'ai entendu dire que « mieux-ajustement » est assez couramment utilisé, mais je ne semble pas beaucoup lu à ce sujet en ligne. Quels sont les plus couramment utilisés / Pensé pour être les politiques les plus efficaces utilisées par les allocataires du tas.

(je reconnais que mon vocabulaire peut être imparfait, quand je dis « politique » je veux dire des choses comme « meilleur ajustement, » « première forme, » « prochain ajustement », etc.)

Modifier Je suis également particulièrement intéressé à la façon dont les politiques de tas de « meilleur ajustement » et doug stratégie de Ica ( http://gee.cs.oswego.edu/dl/html/malloc.html ) comparer. Doug utilise un type de meilleur ajustement, mais son approche utilise des bacs d'index, alors meilleur ajustement utilise un arbre cartésien.

Était-ce utile?

La solution

C environnements de programmation utilisent la mise en œuvre de malloc fourni par la bibliothèque standard C qui est livré avec le système d'exploitation Les concepts mémoire allocateur de Doug Lea (appelé dlmalloc ) sont les plus largement utilisés dans la plupart des allocataires de mémoire sous une forme ou une autre sur les systèmes UNIX. dlmalloc utilise des bacs de différentes tailles pour accueillir des objets -. Le bac le plus proche de la taille de l'objet est utilisé pour affecter l'objet

FreeBSD utilise une nouvelle mémoire allocateur multithread appelé jemalloc conçu pour être simultané et thread-safe, qui fournit de bonnes caractéristiques de performance lorsqu'ils sont utilisés dans les systèmes multi-core d'aujourd'hui. Une comparaison de l'ancien malloc et le nouveau multithread se trouve ici . Bien que ce soit il utilise encore multi-thread les concepts de morceaux de tailles différentes pour accueillir des objets en fonction de leur taille (chunk (s) le plus proche de la taille de l'objet sont utilisés pour affecter l'objet).

Dans UNIX noyaux les plus allocateur de mémoire populaire est le slab allocator , qui a été présenté par Sun Microsystems. Le dalle allocateur utilise de gros morceaux de dalles appelée mémoire . Ces dalles sont répartis entre les caches d'objets (ou pools) de différentes tailles. Chaque objet est alloué à partir du cache qui contient des objets les plus proches de sa taille.

Comme vous remarquerait les bacs ci-dessus / morceaux / caches de dalles ne sont que des formes de meilleur ajustement algorithme. Ainsi, vous pouvez supposer facilement que l'algorithme « meilleur ajustement » est l'un de l'algorithme de malloc le plus largement utilisé (bien que la mémoire diffèrent allocateurs d'autres façons importantes).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top