分析内存用量
内存分析有助于发现 Lynx 页面中的内存泄漏和内存的异常占用,保障稳定性。你可以使用线下的 Trace Memory Track 和 IDE 工具,全面监控和排查内存相关性 能问题。
使用 Trace 深入分析
Trace 从 3.4 版本支持了 Memory Track,用来展示 Lynx 页面内存占用随时间的变化趋势,每个 Memory Track 代表一个 Lynx 页面的内存变化。
点击 Memory Track 曲线,可以看到 Lynx 页面总的内存占用大小以及Element,后台脚本引擎,主线程脚本引擎,图片等占用的内存大小。
使用 IDE 分析内存
本节将简要地介绍如何使用 Android 或者 iOS IDE 内建的工具调试应用,并且查看应用的相关性能参数。
本节将介绍如何使用 Xcode 内存分析工具分析内存。
Analyze 静态检查工具
选择 Product > Analyze 或 Shift + Command + B 即可自动运行,通过分析代码上下文的语法结构和内存情况,找出代码中潜在错误。Analyze 主要分析四种问题:
- 逻辑错误:访问空指针或未初始化的变量等
- 内存管理错误:如内存泄漏等
- 声明错误:从未使用过的变量
- API 调用错误:未包含使用的库和框架
📌 Analyzer 是编译器根据代码进行的判断,不一定准确。如果遇到提示,应该去结合代码上文检查;某些造成内存泄漏的循环引用通过 Analyzer 分析不出来。 Analyzer 是编译器根据代码进行的判断,不一定准确。如果遇到提示,应该去结合代码上文检查;某些造成内存泄漏的循环引用通过 Analyzer 分析不出来。
Leaks 动态检查工具
Xcode > Open Developer Tool > Instruments > Leaks

选择 Leaks 后需要确定调试的设备和应用,比如此示例中使用了一个 iPhone SE2 (iOS 14.5) 的模拟器调试 LynxExample 应用,点击按钮进行内存泄漏的 检查。

开始检查后,需要在模拟器或实机上进行调试,若 Leaks 窗口中显示不正常,便可以跳转到相应的代码处进行调试。调试过程中可以暂停检查图表中展示的内存信息。调试结束后可以将调试信息保存到本地。

若出现内存泄漏,如下图所示,将图表处设置为 Call Tree 模式,然后在软件底部在 Call Tree 设置中勾选 Invert Call Tree,接着选择任意一个内存泄漏就可以定位至源码处。

Allocations 检查详细内存分配
Xcode > Open Developer Tool > Instruments > Allocations

与 Leaks 使用方法相似,但是可以查看详细的内存分配信息。下方的列表展示了各个方法消耗内存的详细数据,通过勾选图表可以在上方显示出柱状图。 点击列表中的某一项,可以查看详细的 Stack Trace 信息,点击右侧的 Stack Trace 窗口可以跳转到相关代码中检查内存分配情况。

会高亮代码部分,并且显示分配的比例。

使用 PerfDog 进行性能测试
PerfDog 是一个用于检测 Android 或 iOS 应用性能的第三方工具,使用方法简单。连接设备并选择待调试的应用后,在开始测试前可以点选右下角红圈的加号添加性能参数列表。
测试结束后可以将数据保存为表格,可以对照图表查看一些性能参数如 Jank 次数等,将工具提供的多种性能参数作为简单的参考,检查应用的性能。











