近日,快手公司在Gitee代码托管平台上推出了一项针对鸿蒙应用性能优化的创新解决方案——“QuickTransformer”。该方案专注于优化鸿蒙应用开发中常用的第三方库“class-transformer”,显著提升了数据反序列化的效率,使得在特定应用场景下的数据转换时间减少了约90%,为鸿蒙应用用户带来了更为流畅的操作体验和更快的交互响应速度。
“class-transformer”库在鸿蒙应用开发中扮演着重要角色,它负责将普通对象(例如JSON数据)与类实例之间进行转换,是实现面向对象编程与数据序列化处理的关键工具。然而,随着应用程序复杂度的增加,该库在反序列化过程中的性能问题逐渐显现,影响了用户的核心体验。因此,对“class-transformer”进行优化成为了提升应用性能的关键。
然而,对“class-transformer”的优化面临着不小的挑战。由于该库在应用中被广泛应用且深度集成,对其进行改造的难度较大。不同业务场景中的model类之间存在高度耦合,使得难以按照业务场景进行渐进式的优化改造。
为了应对这些挑战,快手公司推出了“QuickTransformer”方案。该方案基于“class-transformer”的装饰器使用代码,在编译时生成辅助函数,并在运行时通过hook机制自动替换原有的反序列化调用逻辑,从而实现性能的提升。更重要的是,“QuickTransformer”支持以model类为单位进行配置和开启,即使在多个model类耦合的场景下,也可以只对部分model类进行优化。
“QuickTransformer”的最大亮点在于其无需修改“class-transformer”的使用代码即可实现性能优化。这一特性既保持了对原有开发模式的兼容性,又大幅提升了应用的运行效率。整体改造过程无侵入性、低成本且低风险,非常适合已有项目的快速集成和上线。
在实际应用中,“QuickTransformer”展现出了卓越的性能提升效果。以快手主APP为例,该应用在反序列化方面大规模使用了“class-transformer”,涵盖了成员变量重命名、类型转换、层级转换以及添加成员函数等多个场景。在经过“QuickTransformer”优化后,这些典型场景下的数据转换时间从100毫秒降低到了10毫秒以内,显著改善了页面滑动卡顿和点击响应慢等问题。