性能分析定界(OpenHarmony平台)指南
性能分析定界指南前置条件OpenHarmony Next系统前台运行Flutter页面分析工具DevEco Studio ProfilerSmartPerfFlutter线程介绍Flutter 使用多个线程来完成其必要的工作图层中仅展示了其中两个线程。你写的所有 Dart 代码都在 UI 线程上运行。尽管你没有直接访问其他线程的权限但是你对 UI 线程的操作会对其他线程产生性能影响。平台线程平台的主线插件代码在这里运行。UI 线程UI 线程在 Dart VM 中执行 Dart 代码。该线程包括开发者写下的代码和 Flutter 框架根据应用行为生成的代码。当应用创建和展示场景的时候UI 线程首先建立一个 图层树layer tree 一个包含设备无关的渲染命令的轻量对象并将图层树发送到 GPU 线程来渲染到设备上。 不要阻塞这个线程 在性能图层的最低栏展示该线程。Raster 线程光栅化线程又称GPU线程。raster 线程拿到 layer tree并将它交给 GPU图形处理单元。你无法直接与 GPU 线程或其数据通信但如果该线程变慢一定是开发者 Dart 代码中的某处导致的。图形库 Skia 在该线程运行并在性能图层的最顶栏显示该线程。请注意raster 线程为 GPU 进行栅格化而线程本身则是在 CPU 上运行的。I/O线程执行高负载的操作常见的有 I/O以避免阻塞 UI 或者 raster 线程。这个线程将不会显示在 performance overlay 上。RenderService线程RS进程的主线程由Flutter渲染帧完成后RS线程进行合成并送显.Texture模式下Flutter渲染后的buffer与应用的主线程合成后统一送显受应用主线程的影响Surface模式下Flutter渲染帧单独送显不受应用主线程影响。问题定界在DevEco Studio中点击下方的Profiler标签页打开性能调优工具抓取应用的trace后收藏应用进程的uiraster线程和RenderService的主线程。下图的RenderService缺失帧是因为UI线程单帧耗时较长超过一帧的时间120帧率下一帧是8.33毫秒。一帧渲染流程中ui 和 raster加起来的的总时长超过一帧时间则性能问题能定界是Flutter问题。如上图从ui线程的代码执行开始标记①到raster线程的代码执行结束标记②为止,超过了一帧时间。问题的定位需要进一步的性能分析。附DevEco Studio Profiler调优工具介绍DevEco Studio ProfilerFluter 调优介绍Flutter性能调优
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2494360.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!