Guest User

Untitled

a guest
Nov 14th, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. using System;
  2. using System.Text;
  3. using BenchmarkDotNet.Attributes;
  4. using BenchmarkDotNet.Running;
  5.  
  6. namespace stackallockTest
  7. {
  8. public class Program
  9. {
  10. public static void Main(string[] args)
  11. {
  12. Console.WriteLine("Hello World!");
  13.  
  14. var summary = BenchmarkRunner.Run<BenchClass>();
  15. }
  16.  
  17. public class BenchClass
  18. {
  19.  
  20. [Params(100000)]
  21. public int N;
  22.  
  23. [Benchmark]
  24. public string BuilderTest()
  25. {
  26. StringBuilder builder = new StringBuilder(N);
  27.  
  28. for (int i = 0; i < N; i++)
  29. {
  30. builder.Append('a');
  31. }
  32.  
  33. string str3 = builder.ToString();
  34.  
  35. return str3;
  36. }
  37.  
  38. [Benchmark]
  39. public string NewTest()
  40. {
  41. char[] buffer2 = new char[N];
  42.  
  43. for (int i = 0; i < N; i++)
  44. {
  45. buffer2[i] = 'a';
  46. }
  47.  
  48. string str2 = new string(buffer2);
  49.  
  50. return str2;
  51. }
  52.  
  53. [Benchmark]
  54. public unsafe string StackTest()
  55. {
  56. Span<char> buffer = stackalloc char[N];
  57.  
  58. for (int i = 0; i < N; i++)
  59. {
  60. buffer[i] = 'a';
  61. }
  62.  
  63. string str = new string(buffer);
  64.  
  65. return str;
  66. }
  67. }
  68. }
  69. }
Add Comment
Please, Sign In to add comment