【Unity】string的'+'与StringBuilder.Append的对比

来源:互联网 发布:nginx配置ip访问网站 编辑:程序博客网 时间:2024/06/16 04:15
using System.Collections;using System.Collections.Generic;using System.Text;using UnityEngine;public class StringTest : MonoBehaviour{   int length;    void Update()    {        //使用StringBuilder            StringBuilder str = new StringBuilder("");            for (int i = 0; i < length; i++)            {                str.Append(i);            }       //使用‘+’或string.Concat(string,string)            string str = "";            for (int i = 0; i < length; i++)            {                str += i;               // string.Concat(str, i);            }      //使用string.Concat(string[])          string[] str = new string[length];          for (int i = 0; i < length; i++)          {              str[i] = i.ToString();          }         string result= String.Concat(str);    }}

length为10W的StringBuilder
这里写图片描述
length为1W的string‘+’
这里写图片描述
length为10W的string.Concat(string,string)
这里写图片描述
length为10W的string.Concat(string[])
这里写图片描述

可以看出,在长度确定的情况下,使用string.Concat(string[])效率最高
在length为10W的时候String.Concat(string,string)和StringBuilder效率相似
但当length为100W时
String.Concat(string.string)效率略低于string.Concat(string[]),StringBuilder效率最低,但三者差别都不大
这三者的效率更length为1W时的‘+’效率相似,所以‘+’跟其他的效率大概差100倍

0 0