Le problème générique
Supposons que vous êtes le codage d'un système qui se compose d'un graphique, plus graphique des règles de réécriture qui peut être activé en fonction de la configuration des nœuds voisins. C'est, vous avez un graphique dynamique qui augmente/réduit de façon imprévisible au cours de l'exécution. Si vous naïvement utiliser malloc
, les nouveaux nœuds sont va être affecté dans des positions aléatoires dans la mémoire, après d'assez de temps, votre tas sera un pointeur spaghetti, vous donnant la terrible efficacité de la mémoire cache. Est-il léger, technique incrémentale à faire des nœuds fils ensemble, de rester à proximité de la mémoire?
Ce que j'ai essayé
La seule chose que je pouvais penser, c'est l'incorporation de nœuds dans un espace cartésien avec de l'élastique de la simulation repoussé/a attiré les nœuds. Que garderais filaire noeuds, mais c'est idiot et je suppose que les frais généraux de la simulation serait plus grand que le cache de l'efficacité de l'accélération.
L'exemple solide
C' est le système que je suis en train de mettre en œuvre. Ceci est un bref extrait du code, je suis en train de l'optimiser en C. Ce repo est un prototypes, de travail mise en œuvre en JS, avec la terrible efficacité de la mémoire cache (et de la langue elle-même). Cette vidéo montre le système en action graphiquement.