我们正在开发一个富客户端应用程序,其中许多线程正在运行以及使用第三方控件,在运行应用程序 1 小时后它开始给出“System.OutOfMemoryException”错误,除非并且直到我们重新启动应用程序,我搜索了很多网站寻求帮助,但没有给出具体和具体的理由。
谢谢。
我们正在开发一个富客户端应用程序,其中许多线程正在运行以及使用第三方控件,在运行应用程序 1 小时后它开始给出“System.OutOfMemoryException”错误,除非并且直到我们重新启动应用程序,我搜索了很多网站寻求帮助,但没有给出具体和具体的理由。
谢谢。
这听起来很不言自明,你的系统没有足够的内存。如果您仍在以 32 位运行应用程序,那么迁移到 64 位可能会解决问题。我最近在 server-2008-r2 上遇到了这个问题,迁移到 64 位确实解决了我的问题。但是,如果您已经是 64 位,那么服务器可能没有足够的物理内存。在这种情况下,您需要添加更多内存,或者想办法让您的应用程序减少内存占用。可能有可能被丢弃的对象,它保留了对等的引用,如果是这种情况,您应该尝试分析以尝试确定占用最多内存的对象。除此之外,应用程序是否使用任何非托管 DLL,例如用 C++ 或类似语言编写的 COM 对象。也许托管框架之外存在内存泄漏?
我建议使用分析器来识别和查找高内存消耗的来源。