对我们应用程序性能的分析表明,当 .NET 内存管理必须分配内存时,CPU 使用率达到峰值。
有大量(大量)内存是空闲的,但应用程序未声明它,它在其已声明的内存部分中搜索可用空间。
是否可以将应用程序配置为在可能的情况下申请更多内存?
这可能与应用程序托管在 Citrix 下有关吗?
最佳答案
无论系统有多少可用内存,Windows 应用程序都无法无限增长。
您可以在此处了解实际限制:https://msdn.microsoft.com/en-us/library/aa366778(VS.85).aspx#memory_limits
有关此问题的更多信息,请参见:http://www.codeproject.com/Articles/483475/Memory-Limits-in-a-NET-Process
如果应用程序太接近其限制,它会在每次需要申请新内存时开始旋转垃圾收集器,以避免空间不足并因 OutOfMemoryException 而崩溃。这种同时释放和申请内存的额外努力对性能也有很大的负面影响。
您的应用程序在什么时候停止申请新内存?接近 1 Gb? 2GB? 64 位应用程序能够使用更大的内存量,但这可能不是一个选项...
关于.net - .NET (wpf) 应用程序的内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28829253/