C# 垃圾回收

标签 c# garbage-collection

我有一个自己编写的业务应用程序,它有效地通过目录结构递归查找特定的 Excel 文件,并存储它们的地址。然后它循环遍历这些文件并通过为每个文件创建一个 DocumentParser 对象来解析它们,这是一次一个完成的,而不是异步的。该软件似乎非常稳定,以至于企业希望运行它以递归遍历包含超过 10000 个相关 Excel 文件的庞大目录。

我的问题是,当我每次都创建一个新的 DocumentParser 对象时,GC 是否足够有效以在对象超出范围时丢弃每个对象,即当该 Excel 工作表已被解析时,或者是否有我可以监视它并在必要时手动执行 GC 的方式吗?我以前从未处理过如此大量的数据,通常一次最多只对 40-50 个 Excel 文件进行测试。

谢谢。

最佳答案

GC 是一个非常复杂的软件。并且 GC 至少是唯一知道何时需要进行垃圾回收的系统。所以我的建议是让 GC 自行其是。

另外:GC 将处理这些质量对象。也许您会发现性能下降。如果这是一个问题,您可以尝试优化您的代码。但还为时过早。

关于C# 垃圾回收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5896682/

相关文章:

c# - 如何找到 visual studio 正在寻找程序集引用的位置

c# - 如何将匿名类型转换为类型?

C# params 关键字和函数重载

garbage-collection - 计数器是否垃圾收集?

c++ - 如何在 VC++ 2013 中使用最小 GC?

java - 调用 intern() 方法后,内存中的新 String() 对象何时会被清除

c# - 返回的是无效的表达式项 "return"

c# - 如何在已经运行的线程上执行函数?

php - Symfony2 缓存 session 不是垃圾收集导致磁盘已满问题

c++ - 用于测量 GC 事件的 V8 垃圾收集器回调