Tag: 垃圾

在c#中查看垃圾收集历史记录(VS2015)

当我运行我的应用程序时,“进程内存”图中显示了无法预料和意外数量的垃圾收集活动,这让我想知道程序中生成的垃圾在哪里,因为我觉得我没有任何内存泄漏该程序。 有人可以告诉我是否有办法查看我的代码中生成垃圾的部分(或行)? 提前致谢。

C#垃圾收集器似乎太早关闭了我的StreamWriter

我有一个单一的记录器类。 在它的析构函数中,我调用Close()打印日志的页脚,然后关闭StreamWriter。 public void Close() { WriteLogFileFooter(); _logFile.Flush(); _logFile.Close(); } 问题是当从程序中的其他地方调用System.Enviornment.Exit(1)时(我自己没有编写的部分),页脚永远不会打印,我的记录器会因尝试写入封闭流而抛出exception。 我只能假设Exit命令导致我的StreamWriter在我的Singleton被破坏之前被关闭。 我尝试在我的StreamWriter上使用GC.SupressFinalize(),但这似乎没有帮助。

C#Lambda =>生成垃圾吗?

使用lambda表达式是否会为与正常foreach循环相对的GC生成垃圾? // Lambda version Foos.ForEach(f=>f.Update(gameTime)); // Normal approach: foreach (Foo f in Foos) { f.Update(gameTime); } CLR分析器显示我有69.9%system.Action ,我怀疑是如上所述的foreach循环的lamba版本。 真的吗? 编辑:我使用Microsoft CLR分析器: http : //download.microsoft.com/download/4/4/2/442d67c7-a1c1-4884-9715-803a7b485b82/clr%20profiler.exe或http://msdn.microsoft .COM / EN-US /库/ ff650691.aspx