Ответ 1
Итак, node.js не выделяет память для значений undefined в массиве. Сбой, который я испытал, должен был быть сбойным, поскольку никто другой не мог его воспроизвести и установить последняя версия node.js устранила проблему и для меня.
Следующее за этим вопросом:
Множество нулевых значений в массиве означает любой вред?
Я сделал это с помощью node.js:
arr=[]
arr[1000]=1
arr[1000000000]=2
arr.sort()
И я получил
FATAL ERROR: JS Allocation failed - process out of memory
Итак, это оставляет мне вопрос (я не мог найти его на Yahoogle), сколько памяти фактически выделено для нулевой записи в массиве в node. Я не планирую использовать 1000000000 записей, даже не закрываю, но, возможно, это еще не стоит выделять память...
Кто знает, как я могу проверить?
Итак, node.js не выделяет память для значений undefined в массиве. Сбой, который я испытал, должен был быть сбойным, поскольку никто другой не мог его воспроизвести и установить последняя версия node.js устранила проблему и для меня.
EDIT: Извините за неточность, возможно, не применимо к JAVA.
Тем не менее может оказаться полезным для тех, кому это нужно в другом приложении.
Массив ссылки выделяет x
поэтому выделение arr [100000] будет выделять 100 kb x 4b ~ = 0.5Mb (аппроксимируя)
и YES, определенно, если вы не собираетесь использовать весь массив,
вы должны рассмотреть HashMap, который является структурой данных именно для этого.
HashMap лучше всего иметь большой диапазон поиска с относительно небольшим количеством элементов.
В любом случае, есть решения для выделения небольшого массива и, при необходимости, при необходимости расширяйте его.