清除地图是否有助于垃圾收集?

Does clearing a map aid with garbage collection?

我最近注意到我的同事倾向于在取消引用之前清除任何映射,例如在函数结束时。

他对此的论点是,这是垃圾收集的好做法,我很好奇这是真的还是过度优化的情况?

示例:

function useMap() {
  const map = new Map();
  // do stuff
  map.clear();
}

假设有问题的 javascript 运行时使用跟踪垃圾收集器(大多数使用),它只会访问并处理可从 GC 根访问的对象。由于地图本身不可访问,因此地图中是否仍有引用并不重要,它们将永远不会被访问。

请注意,C# and Java 等人也提出了类似的问题。底层机制非常相似,因此可以根据垃圾收集器理论以 language-independent 方式提出此类问题。