Почему вы используете массивы массива, а не список в TVList IoTDB?

#database #apache-iotdb #iotdb

#База данных #apache-iotdb #iotdb

Вопрос:

Привет~ Я разработчик, который хочет изучить и изменить код IoTDB для нашей компании. Когда я увидел код ТВ-списка IoTDB. Мне было любопытно, почему IoTDB использует массивы массива, а не список в TVList. С массивами массива метод сортировки и метод удаления станут сложными и могут содержать ошибки. Структура списка проста в сортировке, добавлении и удалении и была проверена множеством пользователей. Почему бы не использовать List для замены массивов массива в TVList.

Ответ №1:

Привет~ Я являюсь участником IoTDB, и я очень рад, что вы заинтересованы в IoTDB и присоединяетесь к развивающемуся сообществу IoTDB.

Для вашего вопроса давайте в качестве примера используем 32-разрядное целое число. При использовании структуры списка мы должны перевести int в целое число в java. Одно целое число занимает 4 байта памяти, но одно целое число занимает 16 байтов памяти (8 байтов слов-меток, 4 байта ссылок и 4 байта данных int). TVlist хранит данные о приеме IoTDB, поэтому он имеет решающее значение для памяти. По сравнению с использованием Integer, использование int сэкономит 3/4 памяти.

В ореховой скорлупе мы используем массивы массива для экономии памяти.