gpt4 book ai didi

Chrome 应用程序的内存报告

转载 作者:行者123 更新时间:2023-12-02 05:19:05 24 4
gpt4 key购买 nike

我们创建了一个 Chrome application我们希望尽快向公众发布它。一些测试人员报告了非常高内存使用量,所以我检查了我自己的 Chrome。

当我检查“任务管理器”时,我发现我们正在创建的应用程序占用了大量内存(大约 300MB)!这让一些人非常担心,所以我尝试查看详细信息。

当转到 chrome://extensions/ 时,我看到唯一的事件 View 是背景页面。使用堆分析器,我发现这个后台脚本 消耗了大约 20MB。这显然很多,但还远远不够。

从 20MB 到 300MB 缺少的内存在哪里?

当使用chrome://memory-redirect/时,我可以看到,当应用程序刚刚启动时,内存分割是:

--------------------------------------------
| Resident | Shared | Private | Virtual |
--------------------------------------------
| 36,864k | 84,992k | 15,360k | 839,680k |
--------------------------------------------

运行一段时间后(6 小时)是:

--------------------------------------------
| Resident | Shared | Private | Virtual |
--------------------------------------------
| 143,360k | 92,160k | 120,832k | 949,248k |
--------------------------------------------

今天早些时候的另一个发现。我们的后台页面非常“小”,不到 20MB。尽管该应用程序的全局消费量不断增加,但总体而言这仍然很小。我们发现当我们从我们的应用程序打开新标签时会发生这种情况。全局消费量迅速增加。我们预计当我们关闭标签时它会下降。事实并非如此。它有点下降,但是当关闭选项卡时,当时超过50%的内存都保留在我们的应用中。

这是一个little screencast向任何想要“查看”事物的人提供详细信息/帮助。

最佳答案

您的扩展程序是与任何内容脚本通信还是仅与背景页面通信?

当您拍摄堆快照时,那里定义的 MB 数与您的扩展程序消耗的内存总量不一样。它仅类似于您的堆统计数据有多大。

尝试像这样获取堆快照:

  1. 在扩展页面中点击您的背景页面以打开检查器。
  2. 选择分析器标签
  3. 拍摄一次堆快照,等待它完成。
  4. 试用一下您的应用,确保您的后台页面正常运行。
  5. 拍摄另一个堆快照进行记录。等到它完成。
  6. 屏幕底部有一个比较下拉框,因此请选择“比较”而不是“摘要”。
  7. 现在分析您的数据,查看已分配和释放的内容。

您应该看到一些不一致,因为正在发生泄漏。我认为这不是 DOM 泄漏,因为您在后台页面中(除非您注入(inject)了元素),如果是这样,请检查摘要中的 HTML 项目以查看创建了多少。

关于Chrome 应用程序的内存报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9573455/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com