В настоящее время я пытаюсь написать двумерный граф сцены на C, и мне нужно выбрать способ хранения дочерних узлов. Я ожидаю очень много чтений и мало записей, поэтому о связанном списке не может быть и речи из-за плохой пространственной локальности ссылок, и использование realloc
каждый раз для добавления дочернего узла, вероятно, приведет к фрагментации свободного списка в забвении. Распределитель пула, кажется, лучшее решение, но я не могу найти какие-либо реализации для использования. Кто-нибудь знает о распределителе, который бы эффективно обрабатывал случайные распределения и освобождения в несколько сотен небольших struct
с, или, возможно, лучшую схему распределения?