7

我正在分析一个 C# .NET WinForms 应用程序,我注意到它会产生数百万个软页面错误并在工作期间不断增加......

我知道在 .NET 中,应用程序生成的页面错误数量通常很高,但数百万个页面错误似乎太多了......似乎应用程序触发了 GC 的竞争条件,这可能吗?

是否有一些已知的设计不良的代码会导致这种情况?如果不在代码中,是否有一些 .NET 框架的隐藏设置可以减少页面错误的数量?

可以避免越来越多的软页面错误的产生?

4

1 回答 1

4

如果这不是问题,我真的建议不要管它。如果您有性能问题 - 尝试隔离产生最多页面错误的代码 - 您可能在某个地方使用了大内存占用对象。

尝试使您的“不安全”代码尽可能孤立和简单,即。将所有不安全的代码封装在一个类或函数中。请记住,弄乱 .NET GC 可能会导致大部分不必要的并发症。

检查这篇文章的一些不安全的介绍(它有点旧但仍然是真的): http: //www.codeproject.com/KB/cs/unsafe_prog.aspx

此外,您可以提高 GC 收集之前的时间,这可能会有所帮助

于 2011-11-26T11:52:46.627 回答