騰訊QQ NT架構版本記憶體最佳化進展公佈,php小編小新獲悉,該版本將聊天場景記憶體控制在300M以內,提升了使用者體驗。這項優化措施將有助於用戶在使用QQ時減少記憶體佔用,讓軟體更加流暢有效率。
日前,QQ 技術團隊在 InfoQ 平台發布了一篇介紹文章,分享了其在記憶體上進行專案優化的階段性進展。
據介紹,新版 QQ 在記憶體上的挑戰主要表現在以下 4 個面向:
產品形態:由 1 個複雜的大面板(100 複雜程度不等的模組)和一系列獨立功能視窗構成。視窗與渲染進程一一對應,視窗進程數很大程度影響 Electron 的記憶體佔用。對於那個複雜的大面板,一旦沒有精細控制就很容易導致記憶體持續走高。
使用習慣:使用者長時間掛機。相較於用完即走的 Web 頁面,QQ 使用者在一次登入後,可能會掛機一個月以上。這段期間,如果沒有控制好 QQ 記憶體使用,那麼結果可能是記憶體越佔越大、使用者互動回應變慢、甚至發生閃退。
版本迭代:已經 24 歲的 QQ 擁有眾多的功能和特性,過去一年團隊一直做這件事:從核心特性開始快速補齊 Windows 版本的功能,同時也有一些高優先級的新功能要上。持續且快速的版本迭代,很可能產生新問題,使效能劣化。
應用架構:新版 QQ 依賴一個 NT 核心資料模組(C addon),為 UI 提供在地化的資料服務。 QQ 的載入體驗能做到如此絲滑,這個模組扮演了至關重要的角色。同時,與 NT 的連動優化,也需要拉通客戶端 C 開發同學共同完成,當然,會存在一些溝通成本,但不可否認,能把記憶體佔用壓下來,客戶端同學也付出了非常多的努力。
對此,QQ 技術團隊的工作主要包括以下幾個面向:
工具分析:首先,團隊需要使用不同維度的記憶體分析工具,從 V8 引擎到進程,再到整個應用程序,打通整個鏈路進行多角度的細節分析,以此來定位記憶體使用的瓶頸。
定向優化:透過工具定位到問題之後,團隊會採取一系列的針對性最佳化策略,包括快取策略、按需載入、優雅降級等。
線上監控:在本地或小範圍內驗證通過之後,團隊需要廣大用戶的驗證來確認最佳化措施是否適用於所有場景。然而,如何取得使用者在 Windows 任務管理器中看到的記憶體使用量是一個挑戰,團隊已經做了大量的研究和驗證。
防止效能退化和自動化測試:為了保護辛苦得來的最佳化成果,並避免頻繁的版本迭代影響 QQ 的記憶體目標,團隊會藉助開發框架、工具建立、程式碼審查等手段來預防效能退化。
QQ 技術團隊表示,從結果或解決問題的角度來看,經過一系列最佳化之後基本上可以將 QQ 核心聊天場景的記憶體控制在 300M 以內,150M 的安裝包大小,與舊版純 Native QQ 差異較小。不單單記憶體佔用,其他核心體驗,例如切 AIO 的流暢度上要優於舊版 QQ。
想了解更多資訊內容,請關注本站。
以上是騰訊QQ NT架構版本記憶體最佳化進展公佈,聊天場景控制在300M內的詳細內容。更多資訊請關注PHP中文網其他相關文章!