# 应用内点击邀请好友生成分享图慢

#### 问题现象

应用内点击分享等功能，生成分享图片慢，需要等待较长时间。

#### 背景知识

*   ArkUI Inspector：DevEco Studio中提供用于检查UI的工具，开发者可以借助它预览真机或模拟器中的UI效果，快速定位布局层级问题，也可以观察组件属性、不同组件之间的关系等。
*   DevEco Profiler：集成在DevEco Studio中的性能调优工具，提供场景化的性能调优功能体验，可以检测应用的性能指标、录制Trace信息，通过分析Trace数据能够发现代码中的性能瓶颈，进而优化性能。使用DevEco Profiler提供的Frame场景分析能力可分析卡顿丢帧问题。

#### 问题定位

1.  使用Profiler的Frame模板抓取该过程的Trace信息。
    
    *   以应用收到手指离开屏幕事件的Trace关键字**DispatchTouchEvent xxx type=1**作为问题分析的起点，时间点为4.864s。
        
    *   找到创建Stack组件的Trace关键字**H:Create\[Stack\]**，时间点为7.959s，此时距离应用收到手指离开屏幕事件过去3.095s。
        
    *   观察应用包名泳道Trace，在生成分享图后会生成一个页面切换的Trace点：**H:ABILITY\_OR\_PAGE\_SWITCH**，标志已生成分享图，可以将此时间点7.973s作为问题分析的终点，此时距离创建Stack组件过去14ms，几乎不会影响分享图生成总时间。
        
2.  依据以上分析，问题分析重点范围为应用收到手指离开屏幕事件到创建Stack组件。可以看到过程中应用调用C库的GetImageInfo方法后处理获取的图像信息耗时接近1s，导致生成分享图片慢。
    

#### 分析结论

应用处理获取的图像信息耗时过久导致生成分享图片慢。

#### 修改建议

1.  优化获取到的图像信息处理逻辑，降低图像信息处理耗时。
2.  增加“图片生成中”等友好提示。