C# 通貨フォーマット処理で「ToString」と「String.Format」のパフォーマンスを計測して比較する
C#で、通貨フォーマット処理を「ToString」と「String.Format」のそれぞれで実行したパフォーマンスを計測して比較するコードと結果を記述してます。結果は「ToString」を使用したほうが良さそうです。
環境
- OS windows10 pro 64bit
- Microsoft Visual Studio Community 2022 Version 17.2.3
パフォーマンス計測
「System.Diagnostics.Stopwatch」を使用して、通貨フォーマット処理で「ToString」と「String.Format」を100万回実行して、計測した結果を比較してみます。
namespace ConsoleApp1
{
internal class Program
{
private const int n = 1_000_000;
static void Main(string[] args)
{
decimal money = 123.45M;
string result;
var time = new System.Diagnostics.Stopwatch();
// 計測開始
time.Start();
for (int i = 0; i < n; i++)
{
result = money.ToString("C");
}
time.Stop();
System.Diagnostics.Debug.WriteLine($"ToString : {time.ElapsedMilliseconds}ms");
// 計測開始
time.Reset(); // リセット
time.Start();
for (int i = 0; i < n; i++)
{
result = String.Format("{0:C}", money);
}
time.Stop();
System.Diagnostics.Debug.WriteLine($"String.Format : {time.ElapsedMilliseconds}ms");
}
}
}
実行結果をみると「ToString」を使用した方が、速そうです。
【1回目】
ToString : 189ms
String.Format : 299ms
【2回目】
ToString : 103ms
String.Format : 166ms
【3回目】
ToString : 128ms
String.Format : 168ms
-
前の記事
Ruby 配列内の最大値と最小値を両方取得する 2022.12.28
-
次の記事
Flutter 角が欠けたElevatedButtonを作成する 2022.12.28
コメントを書く