首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >短时间内防止.NET垃圾收集

短时间内防止.NET垃圾收集
EN

Stack Overflow用户
提问于 2011-05-15 09:17:17
回答 2查看 39.9K关注 0票数 76

我有一个处理大量数据的高性能应用程序。它在很短的时间内接收、分析和丢弃大量的信息。这导致了相当多的对象混乱,我目前正在尝试优化,但它也导致了第二个问题。当垃圾收集开始时,它可能会导致一些长时间的延迟,因为它会清理东西(我指的是10s到100s毫秒的长时间)。99%的时间这是可以接受的,但对于大约1-2分钟的短暂时间窗口,我需要绝对确保垃圾收集不会导致延迟。我知道这些时间段什么时候会提前发生,我只需要一种方法来确保垃圾收集不会在这段时间内发生。该应用程序是使用.NET 4.0框架用C#编写的,如果有必要的话,它同时使用托管和非托管代码。

我的问题是;

  1. 是否可以暂时暂停整个程序的垃圾收集?
  2. 是否可以使用System.GC.Collect()在我需要释放垃圾收集的窗口之前强制执行垃圾收集?如果我这样做了,我将释放多长时间的垃圾收集?
  3. 对于最大限度地减少对垃圾收集的总体需求,人们有什么建议?

注意--这个系统相当复杂,有很多不同的组件。我希望避免采用必须在程序的每个类上实现自定义IDisposable接口的方法。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6005865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档