📚往期学习笔录📝:
📝 鸿蒙应用开发与鸿蒙系统开发哪个更有前景?
📝 嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~
📝 对于大前端开发来说,转鸿蒙开发究竟是福还是祸?
📝 鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?
📝 记录一场鸿蒙开发岗位面试经历~
📝 持续更新中……
概述
在软件开发流程中,识别并减少冗余操作至关重要。为优化性能,开发者需在开发阶段适度增加日志以辅助调试,而在生产环境中则需避免冗余日志和Trace追踪输出。还需要审查并删除无实际功能的空回调函数,确保回调有明确的目的。通过精简日志、合理规划Trace追踪和严谨处理回调函数,能够有效降低冗余,提升代码质量与运行性能,从而提高软件产品的用户体验。接下来,将进一步探讨关注点及优化方法。
避免在系统高频回调用进行冗余和耗时操作
高频回调接口通常是指在应用程序运行过程中会被频繁触发的事件或回调函数,如滚动事件、触摸事件、鼠标事件、拖拽事件以及手势移动过程更新事件等。这类接口的核心特征在于极高的触发频率和对性能的严苛要求。在软件开发阶段,针对这类高频回调接口的性能优化显不可忽视。其中,有效的优化策略是在接口内部避免执行冗余的日志记录、Trace追踪以及耗时操作。系统中常见的高频接口包括但不限于以下几种:
通用事件:
onTouch
:触摸事件会在手指触摸动作触发该回调。onItemDragMove
:拖拽在列表元素范围内移动时触发。onDragMove
:拖拽事件会在组件范围内移动时,触发回调。onMouse
:鼠标事件会在当前组件被鼠标按键点击时或者鼠标在组件上悬浮移动时,触发该回调。onVisibleAreaChange
:组件可见区域变化时触发该回调。onAreaChange
:组件区域变化时触发该回调。
特定事件:
onScroll
:滚动事件回调会在列表滑动时触发。(滚动组件中如Scroll、List、Grid、WaterFlow等)onActionUpdate
:手势移动过程更新事件会在手势移动过程中回调。(在基础手势中如PinchGesture、PinchGesture、RotationGesture等)
反例:
下面代码示例演示了在Scroll组件绑定了onScroll()滚动事件,是一个高频触发接口。添加冗余的Trace、日志打印和耗时操作。
// onScroll高频回调场景反例
@Component
struct NegativeOfOnScroll {
private arr: number[] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
build() {
Scroll() {
List() {
ForEach(this.arr, (item: number) => {
ListItem() {
Text("TextItem" + item)
}
.width("100%")
.height(100)
}, (item: number) => item.toString(