Unity游戏脚本优化注意事项【1】
在Unity中。写脚本中,个人感觉最坑爹的东西就是字符串相加。如下
stirng str = "string" + "string2" + 11;
应用
StringBuilder sb = new StringBuilder(); sb.Append("string"); sb.Append("string2"); sb.Append(11.ToString()); string str = sb.ToString();
数值类型在进行字符串操作时,先ToString()在使用。避免装箱操作
而更坑爹是使用是。。。。
在Update中这样
foreach(xx in yy) { stirng str = "string" + "string2" + 11; }
foreach每循环一次。就会产生24字节的垃圾内存。假如循环100次。而update一般每秒执行20多次。意味着,一秒钟。循环了2000次。单高级for就产生了2000*24 = 48000字节垃圾。而字符串相加,产生了5个string垃圾。这样算
下去。一秒钟产生的垃圾就非常的吓人。很快就会GC
foreach产生垃圾的原因:
使用foreach循环导致的创建一个新的迭代器对象代码应该如下这种:
Iterator strings = listOfStrings.iterator(); while (strings.hasNext()) { String s = strings.next(); } 创建了额外的迭代器和指针。
所以,不要在Update中循环。更不要在update中foreach循环。尽量使用for而不是foreach。