[Unity優化]gc02:StringBuilder


參考鏈接:

https://www.cnblogs.com/lql6/p/7699042.html

 

StringBuilder內部維護一個char[],默認大小是16個字符,當超過時就會重新分配一次內存(容量大小翻倍),創建一個新的char[],舊的數據就會被垃圾回收

就字符串的拼接來說,頻繁拼接會產生很多string對象,產生很多內存垃圾,容易觸發gc;而StringBuilder,只會在擴充容量時產生內存分配,觸發gc,因此設置好容量大小就很重要了,盡量減少容量擴充。因此StringBuilder在性能方面比string要好

 

測試:

1.使用string拼接,每幀產生大量內存垃圾

 

2.使用StringBuilder,內存垃圾明顯減少(擴充容量導致gc),並且第一幀后就不會產生gc了(StringBuilder.ToString也會產生gc,因為產生了新的string對象)

 

3.指定最大字符數后不再觸發gc


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM