Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Text;
- using System.Linq;
- using System.Collections.Generic;
- using System.Security.Cryptography;
- using BenchmarkDotNet.Attributes;
- using BenchmarkDotNet.Attributes.Columns;
- using BenchmarkDotNet.Attributes.Exporters;
- using BenchmarkDotNet.Attributes.Jobs;
- using BenchmarkDotNet.Running;
- namespace MyBenchmarks
- {
- [CoreJob]
- [RankColumn]
- public class StringBenchmarks
- {
- private string[] data;
- [Params(1, 2, 3, 4, 5, 10, 40, 160)]
- public int N;
- [GlobalSetup]
- public void Setup()
- {
- data = Enumerable.Range(0, N).Select(_ => Guid.NewGuid().ToString()).ToArray();
- }
- [Benchmark]
- public string WithStupidConcat()
- {
- var s = "";
- foreach (var x in data)
- {
- s += x;
- }
- return s;
- }
- [Benchmark]
- public string WithStringConcat() => String.Concat(data);
- [Benchmark]
- public string WithStringBuilder()
- {
- var s = new StringBuilder();
- foreach (var x in data)
- {
- s.Append(x);
- }
- return s.ToString();
- }
- }
- public class Program
- {
- public static void Main(string[] args)
- {
- var summary = BenchmarkRunner.Run<StringBenchmarks>();
- }
- }
- }
Add Comment
Please, Sign In to add comment