首页 > 其他分享 >鸿蒙Flutter之线程分析

鸿蒙Flutter之线程分析

时间:2024-12-18 17:44:56浏览次数:9  
标签:raster 鸿蒙 RS 收藏 线程 应用 Flutter

鸿蒙Flutter之线程分析

线程顺序

  • 掌握分析工具的使用后,便能去抓取Flutter应用的trace。trace中包含了应用运行期间的所有线程,需要先收藏下图的线程,以及按照图中线程的顺序去排序,才能更好的分析Flutter应用性能。下图每个线程的上方用数字标识了其排列的位置。
  • trace收藏线程,后收藏的线程会出现在收藏列表的顶部,所以实际收藏的时候,根据下图的倒序来收藏线程会比较方便。
  • 1)VSyncGennerator 2)DVSync-app 3)mmi_service 4)应用主线程 5)flutter'PointerEvent' 6)1.ui 7)1.raster 8)DVSync-rs 9)render_service 10)RSUniRenderThread 11)RSHardwareThread 12)dpu_gfx_primary

image-2-201

分析工具按顺序收藏线程后,线程收藏列表如下图:
image-2-202

image-2-203

image-2-204

收藏线程介绍

  • VSyncGennerator
    软件Vsync信号生成器,提供感知VSync帧的能力

  • DVSync-app
    提供给app应用的软件Vsync信号

  • mmi_service
    手指触摸屏幕时,触发的多模事件

  • 应用主线程
    即线程号跟应用进程号一致,同时线程名跟进程名一致的主线程
    平台的主线,插件代码在这里运行

  • flutter'PointerEvent'
    flutter的应用主线程发送触摸事件,到1.ui线程处理触摸事件的过程。这个线程可能会不存在。

  • 1.ui
    UI线程,命名为< number >.ui
    UI 线程在 Dart VM 中执行 Dart 代码。该线程包括开发者写下的代码和 Flutter 框架根据应用行为生成的代码。当应用创建和展示场景的时候,UI 线程首先建立一个 图层树(layer tree) ,一个包含设备无关的渲染命令的轻量对象,并将图层树发送到 GPU 线程来渲染到设备上。 不要阻塞这个线程! 在性能图层的最低栏展示该线程。

  • 1.raster
    Raster线程,命名为< number >.raster
    raster 线程拿到 layer tree,并将它交给 GPU(图形处理单元)。你无法直接与 GPU 线程或其数据通信,但如果该线程变慢,一定是开发者 Dart 代码中的某处导致的。图形库 Skia 在该线程运行,并在性能图层的最顶栏显示该线程。请注意,raster 线程为 GPU 进行栅格化,而线程本身则是在 CPU 上运行的。

  • DVSync-rs
    提供给RS进程的软件Vsync信号

  • render_service
    RS进程的主线程,RS送显的第一步

  • RSUniRenderThread
    RS进程的线程,RS送显的第二步

  • RSHardwareThread
    RS进程的线程,RS送显的第三步

  • dpu_gfx_primary
    硬件dpu信号

标签:raster,鸿蒙,RS,收藏,线程,应用,Flutter
From: https://www.cnblogs.com/hongmengos/p/18615530

相关文章

  • 鸿蒙Flutter使用ohos_videocompressor实现视频压缩
    鸿蒙Flutter使用ohos_videocompressor实现视频压缩介绍videoCompressor是一款ohos高性能视频压缩器。目前实现的能力:支持视频压缩使用方法:有两种方式可以下载本工程:1.开发者如果想要使用本工程,可以使用git命令gitclonehttps://gitee.com/openharmony-sig/ohos_videocom......
  • 鸿蒙 next arkts 实现防抖节流功能
    鸿蒙next-arkts-实现防抖节流功能ClickUtilexportclassClickUtil{privateconstructor(){}privatestaticthrottleTimeoutID:number;//节流timeoutIDprivatestaticflag:boolean=false;//节流flag,true=已经进入执行状态了privatestaticdebounc......
  • Flutter OHOS flutter_image_crop(图片裁剪)
    Flutter的图片裁剪插件该插件附带一个Crop小部件。该小部件仅渲染图像、叠加层和用于裁剪图像的句柄。因此,它可以与其他小部件组合以构建自定义图像裁剪体验。使用创建一个小部件来加载和编辑图像:finalcropKey=GlobalKey<CropState>();Widget_buildCropImage(){r......
  • C#多线程
    C#中的多线程编程是开发高效并发应用程序的关键技术之一,它允许程序同时执行多个任务,从而提升应用程序的响应速度和性能。为了更好地理解C#中的多线程使用和定义,我们可以从以下几个方面来探讨:线程的基本概念、创建线程的方法、线程的状态管理以及线程同步机制。线程的基本概念......
  • ARM学习(38)多进程多线程之间的通信方式
    ARM学习(38)ARM学习(38)多进程多线程之间的通信方式一、问题背景笔者在调试模拟器的时候,碰到进程间通信的问题,一个进程在等另外一个进程ready的时候,迟迟等不到,然后通过调试发现,另外一个进程变量已经变化了,但是当前进程变量没变化,需要了解进程间通信的方式。如下图所示,子进......
  • 鸿蒙开发之无须申请权限访问相册图片
    访问相册图片介绍在应用开发中,很多场景需要我们需要访问相册中的图片。例如:上传头像、上传银行卡、身份证资料、扫描文件功能、美颜功能等所以访问相册里的图片成为我们必须要学习和掌握的内容。那如何访问相册图片呢?在HarmonyOS中,鉴于对用户隐私的高度保护,要方便的完全读取相......
  • 鸿蒙开发之不申请权限写入图片到相册
    写入图片到相册介绍在上一篇中,猫林老师给大家分享了如何在不申请权限的情况下读取相册内容。这一篇教大家如何写入图片到相册。这在应用开发中,也是一个很常见的场景,比如我们要做一个文件扫描的功能。那是不是得把扫描的结果保存到图库呢?再比如我们做一个美颜的功能,那把相册里的......
  • 鸿蒙开发:不申请权限,轻松将图片保存到设备相册
      在移动应用开发中,用户经常需要将某些图片保存到设备的相册中。鸿蒙(HarmonyOS)作为一个新兴的操作系统,提供了一套完整的API来帮助开发者实现这一功能。本文将详细介绍如何在鸿蒙应用中实现从网络下载图片并保存到用户的设备相册。环境准备  在开始之前,请确保您的开发......
  • flutter_ohos_原生和flutter交互跳转
    flutter_ohos_原生和flutter交互跳转1.EntryAbility可以继承UIAbilityexportdefaultclassEntryAbilityextendsUIAbilityimplementsExclusiveAppComponent<UIAbility>{detachFromFlutterEngine():void{//thrownewError('Methodnotimplemented.�......
  • 鸿蒙+next实现页签栏平板端适配
    鸿蒙next实现页签栏平板端适配1.在应用启动时通过updateBreakpoint获取当前窗口尺寸断点//根据当前窗口尺寸更新断点privateupdateBreakpoint(windowWidth:number):void{//拿到当前窗口对象获取当前所在displayId注释该代码原因:会在真机平板中报错//le......