如何避免我的C#.NET应用程序生成的大量软页面错误?

我正在分析一个C#.NET WinForms应用程序,并且我注意到它在工作过程中会产生数百万个软页面错误并且持续增长......

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

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

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


如果这不是问题,我真的建议把这件事留下。 如果您遇到性能问题 - 尝试隔离产生最多页面错误的代码 - 可能是您正在使用大内存占用空间对象的某个地方。

尽量保持你的“不安全”的代码尽可能的孤立和简单,即。 将所有不安全的代码封装在一个类或函数中。 请记住,搞乱.NET GC可能会导致大多数不需要的并发症。

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

此外,你可以提高时间直到GC收集,这可能会有所帮助

链接地址: http://www.djcxy.com/p/56479.html

上一篇: How can I avoid the huge number of soft page faults generated by my C# .NET app?

下一篇: Encryption and decryption error 0x0407106B using OpenSSL