История изменений
Исправление vbr, (текущая версия) :
Мне почему-то кажется, что ты какой-то ерундой страдаешь. На доставке пакета там столько машинерии задействовано, что твой десяток обновлений указателей на этом фоне вообще не заметен будет.
Ты прям уже померил и замерил серьёзный расход чего-то на этой операции?
Альтернатива дереву это что-то вроде array[timestamp - offset]. Т.е. создаёшь массив из указателей, вставляешь по нужному индексу свой указатель. Если там уже вставлен - сдвигаешься куда-то (или делаешь связный список). Таких массивов держишь две штуки, к примеру первый на 0-1 секунды вперёд, второй на 1-2 секунды вперёд и меняешь их местами по мере истечения времени. Тут сложность O(1) и по памяти может быть будет лучше в кеши укладываться. Но вряд ли это всё имеет смысл.
Исходная версия vbr, :
Мне почему-то кажется, что ты какой-то ерундой страдаешь. На доставке пакета там столько машинерии задействовано, что твой десяток обновлений указателей на этом фоне вообще не заметен будет.
Ты прям уже померил и замерил серьёзный расход чего-то на этой операции?
Альтернатива дереву это что-то вроде array[timestamp - offset]. Т.е. создаёшь массив из указателей, вставляешь по нужному индексу свой указатель. Если там уже вставлен - сдвигаешься куда-то (или делаешь связный список). Таких массивов держишь две штуки, к примеру первый на 0-1 секунды вперёд, второй на 1-2 секунды вперёд и меняешь их местами по мере истечения времени. Тут сложность O(1) и по памяти будет лучше в кеши укладываться. Но вряд ли это всё имеет смысл.