В этом коде есть как минимум два выделения:
(1) performance.memory
создает новый объект каждый раз, когда вы вызываете его.Он реализован в собственном коде, но эквивалент в JavaScript будет примерно таким:
Object.defineProperty(performance.__proto__, "memory",
{get: function() {
return {usedJSHeapSize: ...,
totalJSHeapSize: ...,
...: ...};
});
(2) usedJSHeapSize
возвращает число, но вы присваиваете это значение установщику, для которого требуется строка, поэтомунеявно преобразуется в строку, которая является другим распределением.
Обратите внимание, что ни одна из этих проблем не является утечкой: при запуске сборки мусора очищаются все старые временные объекты, которые больше не требуются.Это займет некоторое время, пока вокруг не будет достаточно мусора, и Chrome решит, что выполнение некоторого GC - это хорошее использование вашего процессора.