Как лучше укорачивать массив с начала: shift, splice или delete?
==================================================================

 Объекты поступают по очереди. Нужно хранить в памяти последние N объектов. Объекты объемные по занимаемой памяти и число N достаточно большое.   

  

Есть такая идея. Определяем массив arr и переменную i. По мере поступления объектов записываем их в массив. Если индекс i меньше maxi, то увеличиваем его на 1 и записываем по этому адресу. Если индекс i достиг maxi, то применяем к массиву метод shift(), который удаляет первый элемент и сдвигает все индексы, и записываем в массив по адресу i.  

```
if( i<maxi ) i++; else arr.shift();
arr[i] = myobj;
```
  

Насколько это оптимально?   

  

  

Есть еще идея не сдвигать элементы массива, а постоянно наращивать индекс i, но удалять элементы из начала массива с помощью splice() или delete. Какой способ лучше? 

 И shift, и splice будут реально смещать все элементы. Нет, массив не реализован как список. delete тоже неоптимальный вариант. А вот вышеупомянутый (в комментариях к вопросу) кольцевой буфер на массиве длиной N - идеально для твоего кейса.