Niigata.NET 3.0に参加してきましたのフォローアップです。
概要
Niigata.NET 3.0に参加して、Visual Studioにパフォーマンス プロファイラーたる機能があると教えてもらいました。
早速使ってみます。
分析コード
PerformanceProfiler
/// <summary>
/// ref https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/inside-a-program/coding-conventions
/// </summary>
class Program
{
static void Main()
{
ConcatbyString();
ConcatbyStringBuilder();
}
private static void ConcatbyString()
{
var phrase = "lalalalalalalalalalalalalalalalalalalalalalalalalalalalalala";
var stringPhrases = "";
for (var i = 0; i < 10000; i++)
{
stringPhrases += phrase;
}
Console.WriteLine("tra" + stringPhrases);
}
private static void ConcatbyStringBuilder()
{
var phrase = "lalalalalalalalalalalalalalalalalalalalalalalalalalalalalala";
var stringBuilderPhrases = new StringBuilder();
for (var i = 0; i < 100000; i++) // 早すぎると測定できないようなのでstringの10倍ループ
{
stringBuilderPhrases.Append(phrase);
}
Console.WriteLine("tra" + stringBuilderPhrases);
}
}
分析結果
- +演算子による結合=1,780秒
- StringBuilderによる結合=68秒※試行回数は+演算子の10倍
- 約262倍ですね。
まとめ
Stopwatchは卒業でしょうか。