![]()
這是第448篇UWA技術(shù)知識分享的推送,精選了UWA社區(qū)、UWA AI問答的熱門話題等技術(shù)知識點(diǎn),助力大家更全面地掌握和學(xué)習(xí)。
UWA社區(qū)主頁:community.uwa4d.com
無論是社區(qū)里開發(fā)者們的互助討論,還是AI基于知識沉淀的快速反饋,核心都是為了讓每一個(gè)技術(shù)難題都有解、每一次踩坑都有回響。本期分享分別來自UWA AI問答和UWA問答社區(qū),希望這些從真實(shí)開發(fā)場景中提煉的經(jīng)驗(yàn),能直接幫你解決當(dāng)下的技術(shù)卡點(diǎn),也讓你在遇到同類問題時(shí),能更高效地找到破局方向。
本期目錄:
iOS框架內(nèi)存中占用很高的ttc文件是否正常
Constant Buffer在移動(dòng)端的限制是多少
From AI 問答
Q:用團(tuán)結(jié)引擎Memory Profiler看iOS包的內(nèi)存占用,這個(gè)可以定位iOS框架內(nèi)存。發(fā)現(xiàn)里面有一個(gè)PingFang.ttc占用了74MB,不是在資源里,而是顯示在iOS框架內(nèi)存里面的,這個(gè)是正常的么?
A:該現(xiàn)象是正常的,無需過度擔(dān)憂。
PingFang.ttc是蘋果系統(tǒng)自帶的蘋方字體文件(TrueType Collection),屬于iOS系統(tǒng)級資源。當(dāng)應(yīng)用首次使用系統(tǒng)默認(rèn)字體(如在Text、TextMeshPro以外的UI元素中未指定字體)或系統(tǒng)進(jìn)行文本渲染時(shí),iOS會(huì)將該字體文件映射到應(yīng)用的內(nèi)存空間,因此在Memory Profiler的“iOS框架內(nèi)存”或“Untracked Memory”部分中被統(tǒng)計(jì)為占用。
此部分內(nèi)存由操作系統(tǒng)管理,不屬于Unity托管堆或應(yīng)用主動(dòng)加載的Assets資源,因此不會(huì)出現(xiàn)在AssetBundle或資源列表中。其占用行為屬于系統(tǒng)正常機(jī)制,且通常為共享內(nèi)存(多個(gè)應(yīng)用可能共用同一份字體數(shù)據(jù)的物理頁),實(shí)際對整體PSS內(nèi)存影響有限。
建議處理方式如下:
確認(rèn)是否誤用系統(tǒng)字體:檢查項(xiàng)目中UI文本組件(尤其是Legacy UI Text)是否未指定自定義字體而依賴系統(tǒng)默認(rèn)字體。若需統(tǒng)一視覺風(fēng)格或降低對系統(tǒng)字體的依賴,建議使用嵌入式字體(.ttf/.otf)并打包至AssetBundle。
關(guān)注可優(yōu)化內(nèi)存區(qū)域:74MB的系統(tǒng)字體映射屬正常范圍,應(yīng)優(yōu)先關(guān)注Tracked Memory中的Managed Heap、Texture、Mesh等可控內(nèi)存模塊的優(yōu)化。
避免不必要的文本渲染:減少動(dòng)態(tài)生成大量文本對象的行為,合理使用對象池,防止因文本頻繁創(chuàng)建導(dǎo)致系統(tǒng)字體緩存持續(xù)增長。
使用UWA GOT Online工具輔助分析:通過Resource模式下的內(nèi)存自動(dòng)采樣,對比不同場景下PSS與Reserved Total的變化趨勢,明確業(yè)務(wù)代碼對內(nèi)存的影響。
綜上,PingFang.ttc占用74MB屬于iOS系統(tǒng)正常行為,只要項(xiàng)目無異常卡頓或OOM崩潰,可視為合理內(nèi)存使用。
分享鏈接 :
https://www.uwa4d.com/main/uwa-shared.html?shareId=29e9e0df-2c32-4b2e-9317-503e5891cfd8
From問答社區(qū)
Q:CBuffer(Constant Buffer)在移動(dòng)端一般大小限制是多少?
A:普通Shader的Constant Buffer,會(huì)受到Graphics API和硬件影響,可以用SystemInfo.maxConstantBufferSize獲取。
通常除了GPU Instancing時(shí),很難達(dá)到CBuffer的上限,所以一般不太關(guān)心這個(gè),《Rendering 19--GPU Instancing》這篇文章里面有講GPU Instancing的數(shù)量受到CBuffer的限制。
詳見:《Rendering 19--GPU Instancing》第1.4
https://catlikecoding.com/unity/tutorials/rendering/part-19/
原文如下圖:
![]()
針對以上問題,有經(jīng)驗(yàn)的朋友歡迎轉(zhuǎn)至社區(qū)交流:
https://answer.uwa4d.com/question/68d25f50682c7e5cd61bfb30
封面圖來源于網(wǎng)絡(luò)
今天的分享就到這里。生有涯而知無涯,在漫漫的開發(fā)周期中,我們遇到的問題只是冰山一角,UWA社區(qū)愿伴你同行,一起探索分享。歡迎更多的開發(fā)者加入U(xiǎn)WA社區(qū)。
UWA官網(wǎng):www.uwa4d.com
UWA社區(qū):community.uwa4d.com
UWA學(xué)堂:edu.uwa4d.com
點(diǎn)擊下方名片關(guān)注我們,將我設(shè)為星標(biāo),及時(shí)接收小編每日推送哦,性能優(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.