不同实例化集合的性能差异

首先我们创建基准测试 ,并使用BenchMark来测试List<T>集合实例化不同写法的性能

C#
 [MemoryDiagnoser]
 public class Bencj
 {
     [Benchmark(Baseline = true)]
     public List<string> TestNormal()
     {
         return new List<string>() { "apple", "bob", "banana" };
     }
     [Benchmark]
     public List<string> TestCol()
     {
         return ["apple", "bob", "banana"];
     }
     [Benchmark]
     public List<string> TestCol2()
     {
         return new List<string>(3) { "apple", "bob", "banana" };
     }
     [Benchmark]
     public List<string> TestCol3()
     {
         return new List<string>(test3());
     }

     [Benchmark]
     public List<string> TestCol4()
     {
         List<string> list = [];
         list.Add("apple");
         list.Add("bob");
         list.Add("banana");
         return list;
     }
     [Benchmark]
     public List<string> TestCol5()
     {
         List<string> list = new(3);
         list.Add("apple");
         list.Add("bob");
         list.Add("banana");
         return list;
     }

     [Benchmark]
     public List<string> TestCol6()
     {
         return new List<string>(test);
     }


     private static IEnumerable<string> test3() 
     {
         yield return "apple";
         yield return "bob";
         yield return "banana";
     }

     private static readonly string[] test = new string[] { "apple", "bob", "banana" };
 }

测试结果:

订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
滚动至顶部