- Википедия, Сборка мусора: https://ru.wikipedia.org/wiki/Сборка_мусора
- Википедия, Куча (Heap): https://ru.wikipedia.org/wiki/Куча_(память)
- Memory management in V8: https://deepu.tech/memory-management-in-v8/
performance.memory
на MDN: https://developer.mozilla.org/en-US/docs/Web/API/Performance/memoryperformance.memory
на CanIUse: https://caniuse.com/mdn-api_performance_memory- Как
performance.memory
появился в Chromium: https://www.html5rocks.com/en/tutorials/memory/effectivemanagement/ process.memoryUsage()
: https://nodejs.org/api/process.html#process_process_memoryusage- Как Node.js задаёт размер кучи: nodejs/node#25576 (comment)
- Как V8 задаёт размер кучи:
Heap::HeapSizeFromPhysicalMemory
: https://source.chromium.org/chromium/chromium/src/+/main:v8/src/heap/heap.cc;l=259;drc=18e03c38bb106648f1403e7030161b1c2aaaeb61ResourceConstraints::ConfigureDefaults
: https://source.chromium.org/chromium/chromium/src/+/main:v8/src/api/api.cc;l=824;drc=2ffc79b7d4790b7893ecf86bbfd9e3d0153e10b6
- Настройка памяти Node.js в Docker: https://habr.com/ru/company/ruvds/blog/454522/
- Node.js — buffer constants: https://nodejs.org/api/buffer.html#buffer-constants
- V8 —
v8::TypedArray::kMaxLength
: https://source.chromium.org/chromium/chromium/src/+/main:v8/include/v8-typed-array.h;l=25 - Firefox —
maxByteLength()
: https://searchfox.org/mozilla-central/rev/da6a85e615827d353e5ca0e05770d8d346b761a9/js/src/vm/TypedArrayObject.h#135 - Firefox —
ArrayBufferObject::maxBufferByteLength()
: https://searchfox.org/mozilla-central/rev/da6a85e615827d353e5ca0e05770d8d346b761a9/js/src/vm/ArrayBufferObject.h#191 - Определение максимальной длины
Int8Array
: https://jsfiddle.net/woscyp86/3/ - Определение максимальной длины
Int32Array
: https://jsfiddle.net/5a4r9j3y/
- String length на MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/length
- ECMAScript UTF16Encoding: https://tc39.es/ecma262/2022/multipage/ecmascript-language-source-code.html
- Firefox >= 65
MaxStringLength
: https://searchfox.org/mozilla-central/rev/da6a85e615827d353e5ca0e05770d8d346b761a9/js/public/String.h#330 - Максимальная длина строки в ES2016: https://262.ecma-international.org/7.0/#sec-ecmascript-language-types-string-type
- Определение максимальной длины строки: https://jsfiddle.net/2mL7os5r/5/
- Firefox —
OrderedHashTable
: https://searchfox.org/mozilla-central/rev/da6a85e615827d353e5ca0e05770d8d346b761a9/js/src/ds/OrderedHashTable.h#189 - Firefox —
js::ReportOutOfMemory()
: https://searchfox.org/mozilla-central/rev/da6a85e615827d353e5ca0e05770d8d346b761a9/js/src/vm/JSContext.cpp#265 - Определение максимального количества ключей в Map и Set: https://jsfiddle.net/p4krbzdt/
- Firefox — комментарий к багрепорту о стеке в Linux: https://bugzilla.mozilla.org/show_bug.cgi?id=966173#c20
- Firefox — комментарий к багрепорту о стеке до/после оптимизации кода: https://bugzilla.mozilla.org/show_bug.cgi?id=966173#c24
- Определение максимальной глубины стека: https://jsfiddle.net/zw8fdh0q/1/
- Пакет
@discoveryjs/json-ext
: https://www.npmjs.com/package/@discoveryjs/json-ext - Пакет
json-stream-stringify
: https://www.npmjs.com/package/json-stream-stringify - Пакет
big-json
: https://www.npmjs.com/package/big-json - Фикс
webpack-cli
для большихstats.json
: webpack/webpack-cli#2190 - Ленивые коллекции в Lodash: https://lodash.com/docs/4.17.15#lodash
- Трансдьюсеры в Ramda: https://simplectic.com/blog/2015/ramda-transducers-logs/