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

标签 .net wpf windows memory-management

对我们应用程序性能的分析表明,当 .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/

相关文章:

.net - 我如何告诉 ContextMenu 将其自身相对于其控件而不是光标放置?

c# - 在运行时切换 wpf 资源字典

c - 在 Windows 上格式化文件

windows - 在 Windows 的 XAMPP 上从 CPAN 安装 perl 模块

c# - 获取 <compilation debug ="true"> 的 .NET Framework 设置

c# - 我如何在 C# 窗口存储应用程序中使用键移动图像

c# - 我需要 "transactionScope.Complete();"吗?

.net - XAML -(键入)它有什么意义?

windows - 如何使用需要特定文件名的 CLI 工具在批处理脚本中使用通配符?

.net - 如何操作正在运行的 .NET 应用程序中的属性?