如何循環利用string來減少記憶體破碎(Memory Fragment)的問題?
来源:互联网 发布:复旦大数据学院专业 编辑:程序博客网 时间:2024/04/29 03:28
使用Unity開發遊戲有個很重要的課題
是要盡量避免非預期性的觸發GC.Collect
因為執行GC.Collect會容易造成遊戲的卡頓
如果是非靜止的畫面
就會給玩家遊戲效能不好的壞印象!!!
在C#內string的使用跟運算幾乎都會配置新的記憶體空間
不再使用的string就會進入GC(Garbage Collection)
當記憶體不足的話就會自動觸發GC.Collect
而大量的配置新的記憶體空間也會造成記憶體破碎
要避免這些問題
就要把string循環利用
那要怎麼把string改成能循環利用呢
- 將string用class包裝起來,來達成可循環利用的效果
- 使用pointer來複寫C# string的原生function(會造成GC的function)
- 寫個class來管理string class
哪些function會造成GC請參考~
如何在Unity(C#)內使用pointer?
一些常用且需要複寫的function大致如下:
append - 取代原本string相加
insert - 取代原本insert
ToString - 複寫Object.ToString為了避免誤用到原本的function
toUpper - 小寫英文轉大寫
toLower - 大寫英文轉小寫
subString - 擷取部分字串
format - 可以依照企劃面的需求自定義格式化規則
getHashCode - 可在字串比對用到
replace - 置換字串
remove - 移除字串
0 0
- 如何循環利用string來減少記憶體破碎(Memory Fragment)的問題?
- 如何利用adplus来dump某个process的memory
- 如何利用Fragment里的 onSaveInstanceState保存数据
- 破碎的杯子
- 属于破碎的完美
- 破碎的假期
- 破碎的百合
- 回望破碎的家园
- 破碎的记忆
- 破碎的百合
- 破碎的梦
- 情感日记:蒙太奇的破碎
- 破碎的美丽
- 清华梦的破碎
- 破碎的砝码问题
- "创业梦"的破碎
- 都有一颗破碎的心
- “破碎”的md5恢复
- 12.26
- USB接口的版本以及宽带速度对照表
- PHP自学笔记 ---李炎恢老师PHP第一季 TestGuest0.4
- SAPUI5 (05) - 主题(theming)
- windows编译xgboost-python,不用vs编译
- 如何循環利用string來減少記憶體破碎(Memory Fragment)的問題?
- Java语言的特性
- 性能优化——提升Win10系统反应速度
- JQuery之内置函数响应事件
- 线程并发
- cs111Final Project(part1)
- C函数的调用-----递归调用
- php基础05_get和post
- Torch代码书写时可能碰到的一些问题