Общая проблема
Предположим, что вы кодируете систему, состоящую из графика и правил перезаписи графика, которые могут быть активированы в зависимости от конфигурации соседних узлов. То есть у вас есть динамический граф, который непредсказуемо растет во время выполнения. Если вы наивно используете malloc
, новые узлы будут распределены в случайных позициях в памяти; после достаточного времени ваша куча будет спагетти-указателем, что даст вам ужасную эффективность кеша. Есть ли какой-либо легкий, инкрементный метод, чтобы сделать узлы, которые соединяются вместе друг с другом в памяти?
Что я пробовал
Единственное, о чем я мог думать, это встраивание узлов в декартово пространство с некоторым физическим упругим моделированием, которое отталкивало/притягивало узлы. Это будет содержать проводные узлы вместе, но выглядит глупо, и я думаю, что накладные расходы на симуляцию будут больше, чем ускорение эффективности кеширования.
Простой пример
Это - это система, которую я пытаюсь реализовать. Этот является кратким фрагментом кода, который я пытаюсь оптимизировать в C. Этот repo является прототипом, рабочая реализация в JS, с ужасной эффективностью кеширования (и самого языка). Это видео показывает систему в действии графически.