看内存管理的文档中有如下描述:除应用冷启动是默认支持,其他敏感场景均为调用dfxjsnapi接口进行设置且无本质区别。请问除冷启动外,其他场景需要单独调用dfxjsnapi使SmartGC生效吗?目前测试着看日志只有 [gc] SmartGC: enter app cold start、[gc] SmartGC: finish app cold start,在滑动时没SmartGC相关日志。
看内存管理的文档中有如下描述:除应用冷启动是默认支持,其他敏感场景均为调用dfxjsnapi接口进行设置且无本质区别。请问除冷启动外,其他场景需要单独调用dfxjsnapi使SmartGC生效吗?目前测试着看日志只有 [gc] SmartGC: enter app cold start、[gc] SmartGC: finish app cold start,在滑动时没SmartGC相关日志。
1 回答1.1k 阅读✓ 已解决
1 回答1.3k 阅读
1 回答1.2k 阅读
1 回答1.1k 阅读
1 回答1.1k 阅读
1 回答971 阅读
1 回答946 阅读
Smart GC是默认启用的,无需单独设置。它主要通过调整堆的最大值来避免不必要的GC触发,从而维持高性能表现。敏感场景下,可以通过标记来避免GC,确保应用的流畅运行。除冷启动场景外,其他敏感场景需要单独调用dfxjsnapi接口使SmartGC生效。SmartGC主要用于避免在应用性能敏感场景下触发GC导致应用掉帧。具体来说,以下场景需要调用dfxjsnapi接口:
这些场景中,如果敏感场景持续时间过久,对象分配已经达到了堆最大值,则仍会触发GC,但由于积累的对象太多,GC时间会相对较长。