javascript - 检测内置内存泄漏的 IE11 何时耗尽内存(1.5GB 可回收池)
问题描述
IE11 有一个有据可查的 iframe 内存泄漏。在 SPA 中,如果您使用 iframe,内存将增长到大约 1.5GB,之后它会变慢直到崩溃。
我的任务是检测浏览器何时崩溃并尽快重新启动页面。该应用程序是嵌入在 ASP.NET MVC 中的 Vue.JS。
IE11 中的浏览器有哪些内存/性能检测?
- 某种使用过的内存测量库?
- 某种性能测量库?
- 计算创建的javascript对象?
- 计算创建的 iframe?
其他想法?谢谢。:)
资料来源: https ://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10186458/ https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8449104/ http://support.sas.com/kb/60/514.html
解决方案
就我在这方面的经验而言,减轻这种情况的最佳选择是减少 iframe 的重新创建并减少使用的总内存,因此泄漏很小(例如通过代码拆分未使用的代码、删除大型库等)。然后,您可以进行测试以估算每次页面加载(或您的情况下的任何相关指标)预计泄漏多少内存,并提出重新加载应用程序的启发式方法(例如,在 50 个页面加载后)。
请记住,有时重新加载应用程序不会帮助 IE 回收内存。对此有一个奇怪的解决方法 - 您可以打开一个新选项卡,导航到您的应用程序,切换到该选项卡,然后关闭旧选项卡。显然不是理想的用户体验,但它比页面刷新更可靠。
在其他情况下,内存泄漏是因为您从主窗口的某个位置引用了 iframe,或者在删除 iframe 之前没有清理 iframe 中的事件处理程序 - 我假设您已经从描述中检查了这一点,但我认为它提及它不会有什么坏处:)。
推荐阅读
- c# - 使控件无法选择
- java - 如何分析单个 Java (Spring) 方法运行?
- c# - 带有泛型的可空引用的注释
- javascript - v-for 范围期望一个整数值,但得到 NaN
- flutter - 如何将此 DateRangePicker 值传递给 Flutter 中的 TextFormField?
- informatica - 在 Informatica MDM E360 中拒绝手动合并
- python - 根据numpy数组中的条件应用公式
- r - 在 R 中使用 sqldf() 创建一个作为数据集子集且满足计数不同条件的 df?
- html - 当 iframe 内容是我自己的并且在同一个域上时,iframe 有什么替代方案?
- powershell - POWERSHELL 脚本:AD 本地组,如何删除空的本地组