fuite在 Web 应用中查找内存泄漏
fuite
是一个用于在 Web 应用程序中查找内存泄漏的 CLI 工具。
用法
npx fuite https://example.com
这将检查是否有泄漏,并将输出打印到stdout。
默认情况下,fuite
将假定该站点是客户端渲染的 web 应用程序,它将在给定页面上搜索内部链接。然后对于每个链接,它将:
- 点击链接
- 按浏览器后退按钮
- 重复以查看场景是否泄漏
更多可参阅 scenarios
fuite 使用 Puppeteer 启动 Chrome,加载一个网页,并针对它运行一个场景。它运行场景的一些迭代次数(默认为7次),并寻找泄漏了7次(或14次,或28次)的对象。这听起来可能是一个奇怪的方法,但它对消除内存分析中的噪音很有用。
fuite
查找以下泄漏:
- 对象(使用 Chrome堆快照捕获)
- 事件监听器
- DOM 节点(附加到 DOM – 分离的节点将显示在“对象”下)
- 集合,例如数组、映射、集合和普通对象
默认场景点击内部链接,因为它是最通用的场景,可以针对各种 SPA 运行,如果使用客户端路由,它通常会捕获泄漏。
Usage: fuite [options] <url>
Arguments:
url URL to load in the browser and analyze
Options:
-o, --output <file> Write JSON output to a file
-i, --iterations <number> Number of iterations (default: 7)
-s, --scenario <scenario> Scenario file to run
-S, --setup <setup> Setup function to run
-H, --heapsnapshot Save heapsnapshot files
-d, --debug Run in debug mode
-p, --progress Show progress spinner (use --no-progress to disable)
-V, --version output the version number
-h, --help display help for command
评论