Узлы, оставшиеся после сборки мусора? - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть код ниже, который имеет две кнопки. Один создает 10000 делений, другой удаляет их. Если вы многократно создаете и удаляете профиль производительности, то в результате в профиле останется более 30 000 узлов, иногда более 90 000.

Возвращается к начальному количеству узлов (52), только если вы нажмете кнопку принудительного сбора мусора в chrome перед завершением отчета о производительности. Почему?

import React, { useState } from "react";
import "./styles.css";

const App = () => {
  const [items, setItems] = useState([null]);
  const createMoreItems = () => {
    setItems([...Array(10000).keys()]);
  };

  const removeDivs = () => {
    setItems([null]);
  };

  return (
    <div>
      <button onMouseDown={() => createMoreItems()}>Create 10000 divs</button>
      <button onMouseDown={() => removeDivs()}>Remove</button>

      {items.map(index => {
        return <div>{index} item</div>;
      })}
    </div>
  );
};

export default App;

enter image description here

...