コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】ボックス化をなるべく回避して GC の発生を抑える string.Format「StringUtils」

ソースコード

検証用スクリプト

// string.Format を使用した場合のGC発生回数検証
for ( int i = 0; i < 1000000; i++ )
{
    string.Format( "{0},{1},{2},{3}", 0, 1, 2, 3 );
}
Console.WriteLine( GC.CollectionCount( 0 ) );

// StringUtils.Format を使用した場合のGC発生回数検証
for ( int i = 0; i < 1000000; i++ )
{
    StringUtils.Format( "{0},{1},{2},{3}", 0, 1, 2, 3 );
}
Console.WriteLine( GC.CollectionCount( 0 ) );

検証結果

関数 GC発生回数
string.Format 53
StringUtils.Format 38

関連記事