C# 文字列から最初の一文字を取得する処理で「FirstOrDefault」と「String[]」のパフォーマンスを計測して比較する
C#で、文字列から最初の一文字を取得する処理で「FirstOrDefault」と「String[]」のそれぞれで実行したパフォーマンスを計測して比較するコードと結果を記述してます。結果は「String[]」を使用したほうが良さそうです。
環境
- OS windows10 pro 64bit
- Microsoft Visual Studio Community 2022 Version 17.2.6
パフォーマンス計測
「System.Diagnostics.Stopwatch」を使用して、文字列から最初の一文字を取得する処理で「FirstOrDefault」と「String[]」を100万回実行して、計測した結果を比較してみます。
using System;
using System.Text;
using System.Linq;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
int n = 1_000_000;
char s;
string str = "mebee";
TimeSpan ts;
var time = new System.Diagnostics.Stopwatch();
// 計測開始
time.Start();
for (int i = 0; i < n; i++)
{
s = str.FirstOrDefault();
}
time.Stop();
ts = time.Elapsed;
System.Diagnostics.Debug.WriteLine($"FirstOrDefault : {time.ElapsedMilliseconds}ms");
// 計測開始
time.Reset(); // リセット
time.Start();
for (int i = 0; i < n; i++)
{
s = str[0];
}
time.Stop();
ts = time.Elapsed;
System.Diagnostics.Debug.WriteLine($"String[] : {time.ElapsedMilliseconds}ms");
}
}
}
実行結果をみると「String[]」を使用するのが速そうです。
【1回目】
FirstOrDefault : 64ms
String[] : 2ms
【2回目】
FirstOrDefault : 47ms
String[] : 2ms
【3回目】
FirstOrDefault : 121ms
String[] : 3ms
-
前の記事
ruby 文字列に指定した文字列が含まれているかを判定する 2023.02.18
-
次の記事
javascript videoタグの動画再生できるタイミングのイベントを取得する 2023.02.20
コメントを書く