国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

【厚積薄發(fā)】如何解決ProtoBuf反序列化中GC高的問題

0
分享至


這是第455篇UWA技術(shù)知識分享的推送,精選了UWA社區(qū)、UWA AI問答的熱門話題等技術(shù)知識點,助力大家更全面地掌握和學(xué)習(xí)。

UWA社區(qū)主頁:community.uwa4d.com

UWA QQ群:793972859

本期目錄:

  • 如何解決ProtoBuf反序列化中的GC高的問題

  • 如何在編輯器中集成實時查看Mipmap使用層級工具

From UWA AI 問答

Q:有沒有比較好的解決ProtoBuf反序列化GC的方案?

A:在Unity項目中,使用ProtoBuf進行反序列化時產(chǎn)生的GC主要來源于兩方面:內(nèi)存分配的臨時對象(如字符串、裝箱操作)和反射機制的低效調(diào)用。以下是針對這些問題的成熟且高效的解決方案。

1. 使用[Preserve]與強制AOT初始化避免反射GC

IL2CPP環(huán)境下,由于AOT編譯限制,ProtoBuf生成代碼中的泛型反射方法可能未被提前編譯,導(dǎo)致運行時嘗試動態(tài)調(diào)用而崩潰或觸發(fā)大量GC。為確保所有必要的反射初始化代碼被保留:

using Google.Protobuf.Reflection;
using UnityEngine.Scripting;


[Preserve]
private void ForceReflectionInitialization()
{
// 顯式調(diào)用每個消息類型的ForceReflectionInitialization
FileDescriptor.ForceReflectionInitialization ();
FileDescriptor.ForceReflectionInitialization ();
// 添加所有用到的消息類型
}

此方法無需調(diào)用,僅需存在即可被鏈接器保留。配合[Preserve]特性防止代碼剝離,可有效解決因AOT缺失導(dǎo)致的異常及性能損耗。

2. 避免字符串與值類型裝箱,實現(xiàn)0GC解析輔助

參考TMP文本優(yōu)化思路,可對ProtoBuf解析過程中的輸出處理進行定制,減少中間對象分配。例如,在自定義的日志系統(tǒng)或UI更新中直接復(fù)用StringBuilder寫入,而非通過ToString()創(chuàng)建新字符串。

  • 全局復(fù)用StringBuilder用于格式化輸出。

  • 對數(shù)字字段轉(zhuǎn)字符串時,采用無GC的NumberFormatter.NumberToString(ref char[] buffer, int value)方式,將結(jié)果寫入預(yù)分配字符數(shù)組。

  • 自定義IFormatter 實現(xiàn),繞過裝箱操作,直接處理基本類型。

3. 使用原生字節(jié)訪問替代高開銷API

對于高頻解析場景(如網(wǎng)絡(luò)同步),考慮繞過完整反序列化流程,直接讀取字節(jié)流中的關(guān)鍵字段:

// 使用CodedInputStream直接讀取特定字段
var input = CodedInputStream.CreateInstance(data);
while (!input.IsAtEnd)
{
var tag = input.ReadTag();
switch (tag.FieldNumber)
{
case 1:
int hp = input.ReadInt32();
break;
// 只解析必要字段
}
}

這種方式跳過對象構(gòu)建開銷,適用于只關(guān)心部分?jǐn)?shù)據(jù)的輕量級更新。

4. 緩沖池管理Message實例

頻繁創(chuàng)建/銷毀ProtoBuf對象會加劇GC壓力。建議使用對象池緩存常用Message實例:

public class MessagePool where T : IMessage, new()
{
private static readonly Stack _pool = new();

public static T Get() => _pool.Count > 0 ? _pool.Pop() : new T();

public static void Release(T msg) { _pool.Push(msg); }
}

結(jié)合Clear()重置狀態(tài)后復(fù)用,顯著降低內(nèi)存分配頻率。

綜上,核心策略是:強制AOT初始化 + 禁止代碼剝離 + 復(fù)用緩沖區(qū) + 裁剪不必要的反序列化流程。這些方法已在多個上線項目中驗證,能有效將ProtoBuf相關(guān)GC降至接近零。

分享鏈接 :

https://www.uwa4d.com/main/uwa-shared.html?shareId=228136d0-985e-4af9-8c83-f84b04834677

From問答社區(qū)

Q:最近在優(yōu)化貼圖內(nèi)存,請問有沒有開源庫或者計算方法,可以檢測貼圖在屏幕上的占比情況?

比如,一張1024的貼圖,如果渲染時一直使用很高層級的Mipmap,就說明其實不需要1024這么高的分辨率。我記得有種工具還能通過顏色可視化,我主要想集成在編輯器里面實時查看修改。

A:URP里面編寫Mipmap工具可以參考以下鏈接:

Scene View Debug Modes in the Unity URP


https://johnaustin.io/articles/2021/scene-view-debug-modes-in-the-unity-urp

A way to visualize mip levels


https://aras-p.info/blog/2011/05/03/a-way-to-visualize-mip-levels/

歡迎大家轉(zhuǎn)至社區(qū)交流

https://answer.uwa4d.com/question/6925280c682c7e5cd61bfb76

無論是社區(qū)里開發(fā)者們的互助討論,還是AI基于知識沉淀的快速反饋,核心都是為了讓每一個技術(shù)難題都有解、每一次踩坑都有回響。本期分享分別來自UWA AI問答和UWA問答社區(qū),希望這些從真實開發(fā)場景中提煉的經(jīng)驗,能直接幫你解決當(dāng)下的技術(shù)卡點,也讓你在遇到同類問題時,能更高效地找到破局方向。

封面圖來源于網(wǎng)絡(luò)

今天的分享就到這里。生有涯而知無涯,在漫漫的開發(fā)周期中,我們遇到的問題只是冰山一角,UWA社區(qū)愿伴你同行,一起探索分享。歡迎更多的開發(fā)者加入UWA社區(qū)。

UWA官網(wǎng):www.uwa4d.com

UWA社區(qū):community.uwa4d.com

UWA學(xué)堂:edu.uwa4d.com

點擊下方名片關(guān)注我們,將我設(shè)為星標(biāo),及時接收小編每日推送哦,性能優(yōu)化不迷路~

近期精彩回顧

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點推薦
襲擊我國人員后,該武裝組織遭我軍合成營"教科書式"圍殲

襲擊我國人員后,該武裝組織遭我軍合成營"教科書式"圍殲

小哥很OK
2026-01-05 11:07:02
突傳消息!毛戈平和妻子、姐姐等擬套現(xiàn)14億港元!“用于投資,改善個人生活等”

突傳消息!毛戈平和妻子、姐姐等擬套現(xiàn)14億港元!“用于投資,改善個人生活等”

海峽網(wǎng)
2026-01-08 09:09:01
“哥都禮共和國”宣布成立,并宣布脫離緬甸獨立

“哥都禮共和國”宣布成立,并宣布脫離緬甸獨立

曼谷陳大叔
2026-01-07 15:57:35
女子開車碾壓草場后續(xù):揚言撞死牧民,真實身份被扒,公司被牽連

女子開車碾壓草場后續(xù):揚言撞死牧民,真實身份被扒,公司被牽連

奇思妙想草葉君
2026-01-07 23:56:24
美國扣押一艘與委內(nèi)瑞拉有關(guān)、懸掛俄羅斯旗幟的石油運輸船,外交部回應(yīng)

美國扣押一艘與委內(nèi)瑞拉有關(guān)、懸掛俄羅斯旗幟的石油運輸船,外交部回應(yīng)

環(huán)球網(wǎng)資訊
2026-01-08 15:38:17
油輪被扣押,俄議員呼喊“對美開戰(zhàn)”

油輪被扣押,俄議員呼喊“對美開戰(zhàn)”

跟著老李看世界
2026-01-08 08:57:52
上海通報:公職人員沈劍被查,涉嫌嚴(yán)重違紀(jì)違法

上海通報:公職人員沈劍被查,涉嫌嚴(yán)重違紀(jì)違法

上觀新聞
2026-01-08 12:10:08
朝鮮不會成為第二個委內(nèi)瑞拉!因為朝鮮有兩個后盾

朝鮮不會成為第二個委內(nèi)瑞拉!因為朝鮮有兩個后盾

米君文史
2026-01-07 10:01:47
李慧瓊當(dāng)選香港特別行政區(qū)第八屆立法會主席

李慧瓊當(dāng)選香港特別行政區(qū)第八屆立法會主席

界面新聞
2026-01-08 12:17:34
收評:創(chuàng)業(yè)板指震蕩調(diào)整跌0.82% 全市場超百股漲停

收評:創(chuàng)業(yè)板指震蕩調(diào)整跌0.82% 全市場超百股漲停

財聯(lián)社
2026-01-08 15:02:07
外交部:美方在公海海域隨意扣押他國船只嚴(yán)重違反國際法

外交部:美方在公海海域隨意扣押他國船只嚴(yán)重違反國際法

澎湃新聞
2026-01-08 15:36:26
景德鎮(zhèn)一家三口被撞亡案將宣判,代理律師發(fā)聲!家屬要求嚴(yán)懲

景德鎮(zhèn)一家三口被撞亡案將宣判,代理律師發(fā)聲!家屬要求嚴(yán)懲

南方都市報
2026-01-08 15:11:05
瓦良格號送到中國后有多震撼?專家刮掉表面的銹跡:鋼材品質(zhì)極佳

瓦良格號送到中國后有多震撼?專家刮掉表面的銹跡:鋼材品質(zhì)極佳

古書記史
2026-01-06 16:31:56
新華社官宣:轟-20和殲-36的正式亮相非常值得期待

新華社官宣:轟-20和殲-36的正式亮相非常值得期待

烽火觀天下
2026-01-08 11:52:17
鄭州9歲女孩課堂上寫試卷時昏倒去世,家屬不忍尸檢“她怕疼”,當(dāng)?shù)爻闪0嗾{(diào)查

鄭州9歲女孩課堂上寫試卷時昏倒去世,家屬不忍尸檢“她怕疼”,當(dāng)?shù)爻闪0嗾{(diào)查

大風(fēng)新聞
2026-01-08 14:41:04
72%煙草倒掛逼哭零售戶!寧可不訂也不賠錢,市場根基正在爛根

72%煙草倒掛逼哭零售戶!寧可不訂也不賠錢,市場根基正在爛根

老特有話說
2026-01-07 00:40:03
女大學(xué)生餐館訛錢后續(xù):正臉曝光很漂亮 家人輪番找店主 目的曝光

女大學(xué)生餐館訛錢后續(xù):正臉曝光很漂亮 家人輪番找店主 目的曝光

鋭娛之樂
2026-01-08 08:34:40
微信辟謠網(wǎng)傳新規(guī)則

微信辟謠網(wǎng)傳新規(guī)則

界面新聞
2026-01-08 14:53:45
2025年的中國車市,教會了合資車企如何生存

2025年的中國車市,教會了合資車企如何生存

汽車公社
2026-01-08 08:33:54
雷軍全面回應(yīng)“營銷大師”標(biāo)簽:娛樂節(jié)目中劉強東團隊開個玩笑,被人放大利用,現(xiàn)在聽到營銷兩個字都有點惡心

雷軍全面回應(yīng)“營銷大師”標(biāo)簽:娛樂節(jié)目中劉強東團隊開個玩笑,被人放大利用,現(xiàn)在聽到營銷兩個字都有點惡心

每日經(jīng)濟新聞
2026-01-08 00:48:20
2026-01-08 16:28:49
侑虎科技UWA incentive-icons
侑虎科技UWA
游戲/VR性能優(yōu)化平臺
1537文章數(shù) 986關(guān)注度
往期回顧 全部

科技要聞

智譜拿下“全球大模型第一股”,憑什么

頭條要聞

中方被指正考慮進一步收緊中重稀土出口 日本業(yè)界慌了

頭條要聞

中方被指正考慮進一步收緊中重稀土出口 日本業(yè)界慌了

體育要聞

約基奇倒下后,一位故人邪魅一笑

娛樂要聞

2026春節(jié)檔將有六部電影強勢上映

財經(jīng)要聞

微軟CTO韋青:未來人類會花錢"戒手機"

汽車要聞

從量變到"智"變 吉利在CES打出了五張牌

態(tài)度原創(chuàng)

時尚
手機
游戲
親子
軍事航空

藍(lán)色+灰色、紅色+棕色,這4組配色怎么搭都好看!

手機要聞

華為Pura X2曝光:翻書式橫向折疊,外屏尺寸增大

歐洲評級泄露《奇異人生》新游 但是開發(fā)商沒公布

親子要聞

富豪階層,正在批量生產(chǎn)“超級嬰兒”

軍事要聞

特朗普提出將美國軍費提升至1.5萬億美元

無障礙瀏覽 進入關(guān)懷版