Я написал небольшой тест памяти для node.js: http://pastebin.com/KfZ4Ucn4
Измеряет использование памяти, используя process.memoryUsage().heapUsed
для 3 случаев:
- Массив объектов с 10 свойствами, разными именами свойств для каждого элемента
- Массив объектов с 10 свойствами, одинаковыми именами свойств
- Массив объектов с 10 свойствами, одинаковыми именами свойств, представленными как объект массивов
Издержки составляют 1300 байт для случая 1, 300 байт для случая 2 и 150 байт для случая 3. Также собирается только мусор из случая 1, в то время как в последних случаях использование памяти не снижается.
Есть ли какое-либо объяснение или документация для этих эффектов? Я пытаюсь оптимизировать использование памяти для массива объектов объектов, что-то вроде
[ {
foo : { bar : 1, baz : 2 }
, bar : { bar : 2, baz : 7 }
}
, {
foo : { bar : 1, baz : 2 }
, bar : { bar : 2, baz : 7 }
} ]
Есть какие-нибудь подсказки?