内存泄漏:Web性能的遗忘方面

2022-01-10 08:47:04

我已经研究过,了解了客户端内存泄漏,以了解大多数Web开发人员都没有担心它们。如果Web应用程序在每次互动上泄漏5 MB,但它仍然有效,没有人通知,那么这很重要吗? (有点听起来像“森林里的树”koan,但与我忍受。)

首先,浏览器很清楚,Web是一个泄漏的混乱,并且已经无情地杀死了消耗太多内存的背景选项卡。 (我的前同事在Microsoft Edge Performance Team,Todd Reifsteck,告诉我,2016年回到2016年,“Web泄漏就像筛子。”)很多用户都是制表符(基本上使用标签为书签),并且有一个默契在浏览器和用户之间的了解,您无法在一次打开100个选项卡(从此开始主动运行并立即可用)。所以你点击几周大的标签,繁荣,页面加载时有一闪白的白色,而且没有人似乎很多。

这将我们带到第二点:内存泄漏很难诊断。我已经写了很多关于这个问题,我不会重新返回旧内容。就此而言,可以说,该工具并不是真正取决于任务(尽管最近的最近的创新),即使您是具有多年的Web开发经验的退伍军人。一些绊倒我的Gotchas包括你必须忽略弱势的事实和循环引用,并且DevTools控制台本身可以泄漏内存。

这是我想和fuite一起去的地方。如果您只需在网站上指出工具并让它告诉您究竟是哪一行代码导致泄漏,这将是惊人的。 (如果它可以打开拉动请求以修复泄漏,但嘿,让我们不要超越自己,更好。)

感谢Jake Archibald和Todd Reifsteck关于这篇文章草案的反馈。