【Unity5】【C#】string.StartsWithが激重いのでstring.IndexOfを使おう
先日Unityのプロファイラーを眺めていたところ、string.StartsWithが激重いことに気づいたので共有。
テスト用にこんなスクリプトを実行。
using UnityEngine; using System.Collections; public class Hoge : MonoBehaviour { void Update () { string hoge = "abcdef"; for (int i = 0; i < 1000; i++) { bool check = false; if(hoge.StartsWith("abc")){ check = true; } } } }
これをプロファイラーで確認すると、だいたい2.5msくらい。遅っ。
判定をstring.IndexOfに変更
//if(hoge.StartsWith("abc")){ if(hoge.IndexOf ("abc") == 0){ check = true; }
これを確認すると、だいたい0.3msくらい。2.2msほど軽くなりました。
なんでStartsWithは重いのかわからん・・・が、今後は使用を控えようと思います。