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