1

我目前遇到的问题是,使用 .NET 框架 v4.0 的 C# 应用程序在运行 Windows Server 2012 的 256 GB RAM 服务器上使用 16 GB RAM 后开始使用虚拟内存。

一些附加信息:

程序是在 Windows 7 Professional(64 位二进制)上使用 Visual Studio 2012 Professional Edition 编译的。

我不知道在这种环境中应该发生的任何 RAM 限制,但我错过了什么吗?

我还查看了代码中可能存在的任何潜在原因,但我不确定是什么导致了问题。该程序使用多个 Dictionary 实例。每个字典都包含 MyClass 数据作为其值,其中 MyClass 定义为:

public MyClass
{
    string a;
    string b;
    string c;
    Dictionary<string> subDict;
}

我是否会使用多个字典,每个字典都包含一个字典以某种方式导致内存限制?

4

1 回答 1

3

这不是“为什么要交换服务器”的问题,而是“为什么我的应用程序要消耗这么多内存?”的问题。

强烈建议:

下载 Microsoft CLR 分析器:

对于您最初的问题“即使服务器应该有足够的空闲 RAM,为什么还要使用交换?” - 有很多可能的原因。您需要对服务器具有管理访问权限才能准确确定发生了什么。这些链接可能会有所帮助:

于 2013-06-30T08:38:32.037 回答