Advertisement
Guest User

Untitled

a guest
Nov 5th, 2023
25
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.13 KB | None | 0 0
  1. using BenchmarkDotNet.Attributes;
  2. using BenchmarkDotNet.Running;
  3.  
  4. namespace LinqBench
  5. {
  6. //[MemoryDiagnoser]
  7. public class MemoryBenchmarkerDemo
  8. {
  9. [Benchmark]
  10. public int StupidTest()
  11. {
  12. int[] nums = { -2, -1, -1, 1, 2, 3, 4, 7, 10, 15, 20, 21, 22, 22, 25, 30 };
  13. var result = 0;
  14. for (var i = 0; i < 1000000; i++)
  15. {
  16. nums[^1] += 1;
  17. result = MaximumCount(nums);
  18. }
  19.  
  20. return result;
  21. }
  22.  
  23. public int MaximumCount(int[] nums)
  24. {
  25. return Math.Max(
  26. nums.Count(x => x > 0),
  27. nums.Count(x => x < 0));
  28. }
  29.  
  30. [Benchmark]
  31. public int StupidTest2()
  32. {
  33. int[] nums = { -2, -1, -1, 1, 2, 3, 4, 7, 10, 15, 20, 21, 22, 22, 25, 30 };
  34. var result = 0;
  35. for (var i = 0; i < 1000000; i++)
  36. {
  37. nums[^1] += 1;
  38. result = MaximumCount2(nums);
  39. }
  40.  
  41. return result;
  42. }
  43.  
  44. public int MaximumCount2(int[] nums)
  45. {
  46. return Math.Max(
  47. nums.MyCount(x => x > 0),
  48. nums.MyCount(x => x < 0));
  49. }
  50. }
  51.  
  52. file static class Ex
  53. {
  54. public static int MyCount(this int[] nums, Func<int, bool> preficate)
  55. {
  56. var count = 0;
  57. foreach (var num in nums)
  58. {
  59. if (preficate(num))
  60. count++;
  61. }
  62.  
  63. return count;
  64. }
  65. }
  66.  
  67. internal class Program
  68. {
  69. private static void Main(string[] args)
  70. {
  71. var summary = BenchmarkRunner.Run<MemoryBenchmarkerDemo>();
  72. }
  73. }
  74. }
  75.  
  76. .NET SDK 7.0.403
  77. [Host] : .NET 7.0.13 (7.0.1323.51816), X64 RyuJIT AVX2
  78. DefaultJob : .NET 7.0.13 (7.0.1323.51816), X64 RyuJIT AVX2
  79.  
  80.  
  81. | Method | Mean | Error | StdDev |
  82. |------------ |----------:|---------:|---------:|
  83. | StupidTest | 192.31 ms | 0.640 ms | 0.534 ms |
  84. | StupidTest2 | 64.92 ms | 0.272 ms | 0.227 ms |
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement