--- lang: ja-jp breaks: true --- # C# `String Interpolation` `文字列補間` の速度調査 2021-10-20 軽量な文字列処理を1億回実行する速度調査 ```csharp= string pid = "XXXX0001"; string message = "String interpolation in C#"; string discription = "Test the processing speed."; var maxCount = 100000000; Action<string> action = (string str) => { //Console.WriteLine(str); }; { Stopwatch sw = Stopwatch.StartNew(); string str = null; for (int i = 0; i < maxCount; i++) { str = "[" + pid + "]" + message + " " + discription; } action(str); sw.Stop(); Console.WriteLine($"string operator {sw.Elapsed.ToString()}"); } { Stopwatch sw = Stopwatch.StartNew(); string str = null; for (int i = 0; i < maxCount; i++) { str = string.Format("[{0}]{1} {2}", pid, message, discription); } action(str); sw.Stop(); Console.WriteLine($"string Format {sw.Elapsed.ToString()}"); } { Stopwatch sw = Stopwatch.StartNew(); sw.Start(); string str = null; for (int i = 0; i < maxCount; i++) { str = $"[{pid}]{message} {discription}"; } action(str); sw.Stop(); Console.WriteLine($"string interpolation {sw.Elapsed.ToString()}"); } { Stopwatch sw = Stopwatch.StartNew(); sw.Start(); var sbr = new StringBuilder(); string str = null; for (int i = 0; i < maxCount; i++) { sbr.Clear(); str = sbr.Append("[").Append(pid).Append("]").Append(message).Append(" ").Append(discription).ToString(); } action(str); sw.Stop(); Console.WriteLine($"StringBuilder {sw.Elapsed.ToString()}"); } { Stopwatch sw = Stopwatch.StartNew(); sw.Start(); string str = null; for (int i = 0; i < maxCount; i++) { var sbr = new StringBuilder(); str = sbr.Append("[").Append(pid).Append("]").Append(message).Append(" ").Append(discription).ToString(); } action(str); sw.Stop(); Console.WriteLine($"StringBuilder new() {sw.Elapsed.ToString()}"); } ``` ## `.NET Framework 4.8` ```shell= string operator 00:00:08.5226781 string Format 00:00:11.3753951 string interpolation 00:00:08.3150392 StringBuilder 00:00:04.3054870 StringBuilder new() 00:00:13.4636749 ``` ## `.NET Core 6.0` ```shell= string operator 00:00:05.9941010 string Format 00:00:09.4145695 string interpolation 00:00:05.3217175 StringBuilder 00:00:04.0855460 StringBuilder new() 00:00:11.5702057 ``` ###### tags: `C#` `String Interpolation` `文字列補間` `速度`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up