.NET(wpf)应用程序的内存管理

Ger*_*ard 5 .net windows wpf memory-management

对我们的应用程序性能的分析表明,当内存必须由.NET内存管理分配时,CPU使用率达到顶峰.

有一个(巨大的)内存量只是免费但应用程序没有声明,它在已经声称的内存部分中搜索了可用空间.

是否可以配置应用程序以在可能的情况下声明更多内存?
这可能与应用程序托管在Citrix下的事实有关吗?

alm*_*ulo 1

无论系统有多少可用内存,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 位应用程序能够使用更大容量的内存,但这可能不是一个选择...