うにてぃブログ

UnityやUnreal Engineの記事を書いていきます

【C#】string 結合のGC

文字列結合時の GC を調査してみました

文字の長さが短いかつ何度も計測しているわけではないのでこれが正しいかどうか分かりません
単純な結合より string.Formatのほうが GC が少ないと思っていたが
string.Format は結合が早い分 GC が多い模様

// 0B
var str = "a" + "b";

// 30B
string.Concat("a", "b");
 
// 28B
1.ToString();

// 30B
10.ToString();
 
// 38B
100000.ToString();

// 70B
true.ToString();
 
// 70B
false.ToString();
  
// 0.5kB
Vector2.one.ToString();
  
// 76B
$"{1}";
 
// 76B
string.Format("{0}", 1);
 
// 100B
string.Format("{0} {1}", 1, 0);
 
// 100B
1 + " " + 0;
 
// 78B
var str = "a" + 1;
  
// 82B
var str = "a" + 11; 
   
// 0.6kB
"a" + Vector2.down;
 
// 0.7kB
string.Format("a{0}", Vector2.down);
 
// 188B
1000000.ToString() + 1000000.ToString() + 1000000.ToString();
 
// 248B
string.Format("{0}{1}{2}", 1000000, 1000000, 1000000);