在使用VisualStudio2013性能向导分析我的代码的.NET内存分配时,我注意到某个函数分配了大量字节(因为它是在大循环中调用的)。但是查看分析报告中突出显示的函数,我根本不明白为什么它要分配任何内存。为了更好地理解发生了什么,我隔离了导致分配的代码。这类似于下面的LinqAllocationTester类。一旦我注释掉该函数中的LINQ代码,该函数从未在测试代码路径中执行过,就不再分配内存。NonLinqAllocationTester类模仿这种行为。用普通循环替换LINQ代码也可以避免内存分配。如果我在下面的测试代码上运行.NET内存分配测试,它会显示LinqAllocat