关闭选项卡/窗口之前删除变量是否有助于释放内存?

威廉·巴博萨

我正在维护一个JavaScript代码,其中执行一些繁重处理以生成数组的函数会将结果保存在该函数本身内部的缓存变量中。它是这样实现的:

function heavyProcessingStuff(x) {
    if(heavyProcessingStuff.cache == undefined) 
       heavyProcessingStuff.cache = [];

    if(heavyProcessingStuff.cache[x] != undefined) {
       return heavyProcessingStuff.cache[x]
    } else {
      return heavyProcessingStuff.cache[x] = x + 1
    }
}

奇怪的是,在页面卸载时执行了一个函数,该函数手动删除了缓存变量的每个属性,如下所示:

for (n in heavyProcessingStuff.cache) {
  delete heavyProcessingStuff.cache[n]
}

我对为什么要这样实施感到困惑。
这是针对某些奇怪的极端情况吗?有这样做的动力吗?页面关闭时,浏览器是否/不应该垃圾收集所有内容?

全部1

Javascript使用垃圾回收,最好不要显式释放内存。对此的良好阅读在文章“编写快速的,具有内存效率的JavaScript”中的“取消引用错误观念”中

文章引用:

无法在JavaScript中强制进行垃圾回收。您不希望这样做,因为垃圾收集过程是由运行时控制的,并且通常最清楚何时应该清理事物。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SocketAsyncEventArgs“ pooled byte []”样式是否有助于减少内存需求?

来自分类常见问题

索引是否有助于sql选择排序性能?

来自分类Dev

索引是否有助于sql选择排序性能?

来自分类Dev

Eclipse RCP:这是否有助于片段项目

来自分类Dev

Redis复制是否有助于负载均衡?

来自分类Dev

硬件是否有助于减少OS X的崩溃?

来自分类Dev

TLP是否真的有助于延长电池寿命?

来自分类Dev

嵌套循环是否有助于解析结果

来自分类Dev

在Android的本地资源/图标上使用图像加载器是否有助于提高性能/内存压力?

来自分类Dev

在多个容器中存储数据时,Java 的参考系统是否有助于节省内存?

来自分类Dev

有助于Google翻译的API

来自分类Dev

使用 ioc 真的有助于具有 5 个选项卡式屏幕的 Xamarin Forms 应用程序吗?

来自分类Dev

是否有任何数学算法有助于良好的响应式html设计?

来自分类Dev

PYMC3混合物模型:有助于理解多变量模型

来自分类Dev

使用CSRF表单令牌是否有助于预防垃圾邮件?

来自分类Dev

批处理Google Drive API请求是否有助于缓解RateLimitExceeded错误?

来自分类Dev

重新生成会话ID是否有助于防止固定和/或劫持?

来自分类Dev

较大的SWAP分区面积是否有助于更快地“挂起\休眠”?

来自分类Dev

Facebook登录流程,有助于了解我是否需要调试令牌调用?

来自分类Dev

刻录DVD / CD较慢是否有助于确保不会出现错误?

来自分类Dev

CSS初学者,是否有助于创建此布局?

来自分类Dev

“ident_key = null 上的左连接表”是否有助于查询速度?

来自分类Dev

在Ask Ask Ubuntu上做贡献是否有助于我成为Ubuntu会员?

来自分类Dev

基本的JavaScript对象结构有助于访问属性

来自分类Dev

线程有助于提高Java的效率吗?

来自分类Dev

TSQL查询有助于结构化结果

来自分类Dev

流浪汉如何有助于发展

来自分类Dev

与流有助于消除从文件扩展名

来自分类Dev

哪些属性有助于LCD面板的质量?

Related 相关文章

  1. 1

    SocketAsyncEventArgs“ pooled byte []”样式是否有助于减少内存需求?

  2. 2

    索引是否有助于sql选择排序性能?

  3. 3

    索引是否有助于sql选择排序性能?

  4. 4

    Eclipse RCP:这是否有助于片段项目

  5. 5

    Redis复制是否有助于负载均衡?

  6. 6

    硬件是否有助于减少OS X的崩溃?

  7. 7

    TLP是否真的有助于延长电池寿命?

  8. 8

    嵌套循环是否有助于解析结果

  9. 9

    在Android的本地资源/图标上使用图像加载器是否有助于提高性能/内存压力?

  10. 10

    在多个容器中存储数据时,Java 的参考系统是否有助于节省内存?

  11. 11

    有助于Google翻译的API

  12. 12

    使用 ioc 真的有助于具有 5 个选项卡式屏幕的 Xamarin Forms 应用程序吗?

  13. 13

    是否有任何数学算法有助于良好的响应式html设计?

  14. 14

    PYMC3混合物模型:有助于理解多变量模型

  15. 15

    使用CSRF表单令牌是否有助于预防垃圾邮件?

  16. 16

    批处理Google Drive API请求是否有助于缓解RateLimitExceeded错误?

  17. 17

    重新生成会话ID是否有助于防止固定和/或劫持?

  18. 18

    较大的SWAP分区面积是否有助于更快地“挂起\休眠”?

  19. 19

    Facebook登录流程,有助于了解我是否需要调试令牌调用?

  20. 20

    刻录DVD / CD较慢是否有助于确保不会出现错误?

  21. 21

    CSS初学者,是否有助于创建此布局?

  22. 22

    “ident_key = null 上的左连接表”是否有助于查询速度?

  23. 23

    在Ask Ask Ubuntu上做贡献是否有助于我成为Ubuntu会员?

  24. 24

    基本的JavaScript对象结构有助于访问属性

  25. 25

    线程有助于提高Java的效率吗?

  26. 26

    TSQL查询有助于结构化结果

  27. 27

    流浪汉如何有助于发展

  28. 28

    与流有助于消除从文件扩展名

  29. 29

    哪些属性有助于LCD面板的质量?

热门标签

归档