Вместо того, чтобы создавать систему пула памяти, я не могу просто выделить огромные массивы для каждого объекта в начале приложения и просто использовать их, и в крайнем случае для некоторого объекта требуется больше экземпляров, чем для его массива, массив просто удваивается или в четыре раза, так что он никогда не достигнет максимального размера. Мне нужна скорость больше, чем память, так что я думаю, что это справедливый компромисс?
Единственное различие между тем, что вы описываете, и пулом памяти состоит в том, что обычно распределитель пулов выделяет новый пул, когда ему не хватает памяти, а ваш перераспределяет весь массив, если он исчерпывается. Это приведет к значительному увеличению времени выполнения в худшем случае, и вам потребуется схема, позволяющая избежать аннулирования указателей и ссылок при перераспределении, что, вероятно, снизит производительность всей программы.
Худший случай в пуле-распределителе — когда ему не хватает места и ему нужно выделить новый массив. Наихудший случай в вашем распределителе, он заканчивается и должен выделить новый больший массив и скопировать все старые объекты в новый массив. Очевидно, что последнее займет гораздо больше времени.
Других решений пока нет …