近日,快手在Gitee平臺上線了鴻蒙應(yīng)用性能優(yōu)化解決方案“QuickTransformer”,該方案針對鴻蒙應(yīng)用開發(fā)中廣泛使用的三方庫“class-transformer”進(jìn)行了深度優(yōu)化,有效提升了其數(shù)據(jù)反序列化性能,在典型場景下能夠降低約90%的數(shù)據(jù)轉(zhuǎn)換耗時,為鴻蒙應(yīng)用帶來了更流暢的用戶體驗(yàn)和更敏捷的交互響應(yīng)高性能磁鐵 。
在鴻蒙應(yīng)用開發(fā)過程中,“class-transformer”三方庫被廣泛應(yīng)用于將普通對象(如 JSON 數(shù)據(jù))與類實(shí)例進(jìn)行互轉(zhuǎn),是實(shí)現(xiàn)面向?qū)ο缶幊膛c數(shù)據(jù)序列化解耦的核心工具高性能磁鐵 。隨著業(yè)務(wù)復(fù)雜度的提升,該庫在反序列化過程中逐漸暴露出性能瓶頸,影響用戶核心體驗(yàn)。因此,對“class-transformer”進(jìn)行優(yōu)化,將帶來明顯的性能收益。然而,由于“class-transformer”在應(yīng)用中廣泛、深度使用,改造難度較大,且由于多業(yè)務(wù)場景間 model 類存在高度耦合,難以按業(yè)務(wù)場景維度進(jìn)行漸進(jìn)式改造優(yōu)化。
在此背景下,“QuickTransformer”應(yīng)運(yùn)而生高性能磁鐵 。它基于“class-transformer”的裝飾器使用代碼,可在編譯時生成輔助函數(shù),并在運(yùn)行時通過hook方式自動替換原有反序列化調(diào)用邏輯,實(shí)現(xiàn)性能加速。同時它還支持按model類粒度配置開啟,在多個model類耦合的場景,可以只對部分model類進(jìn)行優(yōu)化。
該方案最大的亮點(diǎn)在于無需修改“class-transformer”的使用代碼即可實(shí)現(xiàn)性能優(yōu)化,既保持了對原有開發(fā)模式的兼容性,又大幅提升了運(yùn)行效率,整體改造過程無侵入、低成本、低風(fēng)險,適用于已有項(xiàng)目的快速集成與上線高性能磁鐵 。
在實(shí)際應(yīng)用中,“QuickTransformer”也展現(xiàn)出卓越的性能提升效果高性能磁鐵 。此前,快手主APP中大規(guī)模使用“class-transformer”,主要集中在反序列化方面,包含成員變量rename、成員變量類型轉(zhuǎn)換、成員變量層級轉(zhuǎn)換、添加成員函數(shù)等場景。在經(jīng)過“QuickTransformer”改造優(yōu)化后,這些典型場景下的數(shù)據(jù)轉(zhuǎn)換操作時間普遍降低90%,從100ms降低到10ms以內(nèi),顯著緩解了頁面滑動卡頓、點(diǎn)擊響應(yīng)慢等性能問題。
目前,“QuickTransformer”已在Gitee平臺上線并開源,開發(fā)者可到Gitee平臺查看源碼參與共建,共同打造更多高性能、高質(zhì)量的鴻蒙應(yīng)用高性能磁鐵 。未來,華為還將聯(lián)合伙伴持續(xù)共建創(chuàng)新,面向底座技術(shù)、通用能力、垂類行業(yè)等場景推出系列開發(fā)者場景化解決方案,不斷提升鴻蒙應(yīng)用的創(chuàng)新體驗(yàn)和開發(fā)效率,與廣大開發(fā)者共建繁榮的鴻蒙生態(tài)。