如何解决如何使用performance.measureMemoryAPI进行前端可观察性?
我希望在固定的间隔内跟踪不同客户端上应用程序/网页的内存消耗。我的团队希望在了解是否有任何新功能推出会对应用程序占用的内存产生重大影响并回滚该功能(如果有)时遵守该指标。
我已经阅读了以下来源:
- https://web.dev/monitor-total-page-memory-usage/
- https://trackjs.com/blog/monitoring-javascript-memory/
- https://developer.mozilla.org/en-US/docs/Web/API/Performance/memory
- https://wicg.github.io/performance-measure-memory/
- https://github.com/WICG/performance-measure-memory
首先,如果我们看一下旧的API:window.performance
用户必须通过使用“ --enable-precise-memory-info”标志启动Chrome来启用精确的内存监视。对我来说,期望我们的用户使用此标志运行Chrome似乎不合理。
我还了解到,此API可能会过多或低估内存消耗,因为它会测量JavaScript堆的大小,如果有iframe或服务工作者启动不同的堆,或者有任何大的网页,这可能是不正确的在同一堆上。
由于这两个原因,对于在生产中的真实客户端上进行前端可观察性的目标,此选项不是有效的选项(imo)。
第二,如果我们查看新的API:performance.measureMemory()
。
只能通过原产地试用直到2021年1月(根据我签署令牌时表格告诉我的内容)。
除了在开发机上进行本地配置外,这似乎是目前实现以上目标的唯一选择(或者我误会了?)。
关于API的使用,我有两个问题:
- 2021年1月之后,我们还有其他选择吗(1月之后将不可用)吗?
- 我可以通过启用标志
#enable-experimental-web-platform-features
在本地进行测试,而不会出现任何问题。我有一个原始试用令牌,并且如果将其作为元标记添加到我的index.html
中,我的用户是否需要在浏览器中启用任何标记才能让我们观察到此标记?
解决方法
我联系了measure memory API w3c specification的编辑,他很友好,可以迅速答复我。
我现在将我在电子邮件中获得的答案发布在这里,以防其他人寻找它:
- 2021年1月之后,我们还有其他选择吗(1月之后将不可用)吗?
我们计划将其安装在Chrome 89中。出于安全原因,它将由self.crossOriginIsolated保护。起源试用版中当前提供的版本不需要跨域隔离。
- 我可以通过启用以下标志来在本地进行测试:#enable-experimental-web-platform-features没有任何问题。我有一个原始试用令牌,并且如果将其作为meta标签添加到index.html中,我的用户是否需要在浏览器中启用任何标志才能使我们观察到此标记?
如果添加元标记,则用户不需要任何标志。请注意,如果没有--enable-blink-features ='ForceEagerMeasureMemory',则可能需要一段时间(最多20秒),直到结果的承诺得以解决。这是因为API会等到下一个垃圾回收执行测量。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。