HarmonyOS SmartGC需要单独设置吗?

看内存管理的文档中有如下描述:除应用冷启动是默认支持,其他敏感场景均为调用dfxjsnapi接口进行设置且无本质区别。请问除冷启动外,其他场景需要单独调用dfxjsnapi使SmartGC生效吗?目前测试着看日志只有 [gc] SmartGC: enter app cold start、[gc] SmartGC: finish app cold start,在滑动时没SmartGC相关日志。

阅读 507
1 个回答

Smart GC是默认启用的,无需单独设置。它主要通过调整堆的最大值来避免不必要的GC触发,从而维持高性能表现。敏感场景下,可以通过标记来避免GC,确保应用的流畅运行。除冷启动场景外,其他敏感场景需要单独调用dfxjsnapi接口使SmartGC生效。SmartGC主要用于避免在应用性能敏感场景下触发GC导致应用掉帧。具体来说,以下场景需要调用dfxjsnapi接口:

  • 应用滑动
  • 应用点击页面跳转
  • 超长帧

这些场景中,如果敏感场景持续时间过久,对象分配已经达到了堆最大值,则仍会触发GC,但由于积累的对象太多,GC时间会相对较长。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进