Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Text;
- using BenchmarkDotNet.Attributes;
- using BenchmarkDotNet.Running;
- namespace stackallockTest
- {
- public class Program
- {
- public static void Main(string[] args)
- {
- Console.WriteLine("Hello World!");
- var summary = BenchmarkRunner.Run<BenchClass>();
- }
- public class BenchClass
- {
- [Params(100000)]
- public int N;
- [Benchmark]
- public string BuilderTest()
- {
- StringBuilder builder = new StringBuilder(N);
- for (int i = 0; i < N; i++)
- {
- builder.Append('a');
- }
- string str3 = builder.ToString();
- return str3;
- }
- [Benchmark]
- public string NewTest()
- {
- char[] buffer2 = new char[N];
- for (int i = 0; i < N; i++)
- {
- buffer2[i] = 'a';
- }
- string str2 = new string(buffer2);
- return str2;
- }
- [Benchmark]
- public unsafe string StackTest()
- {
- Span<char> buffer = stackalloc char[N];
- for (int i = 0; i < N; i++)
- {
- buffer[i] = 'a';
- }
- string str = new string(buffer);
- return str;
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment