相关疑难解决方法(0)

.NET内存故障排除

在阅读了一些有关.NET技术内存的启发性文章后,Out of Memory并未引用物理内存,597499.

我以为我理解为什么C#应用程序会抛出一个内存不足的异常 - 直到我开始尝试使用两台服务器 - 两者都有2.5 GB的ram,windows server 2003和相同的程序运行.

两者之间唯一显着的区别是剩下7%的硬盘存储空间而另一个存在超过50%.

剩下7%存储空间的服务器一直在内存不足,而另一个服务器一直表现良好.

我的应用程序是一个C#Web应用程序,它处理'数百MB的String对象.

为什么这种差异会发生,因为内存不足问题的最可能原因是连续的虚拟地址空间.

.net c# memory-management out-of-memory

4
推荐指数
1
解决办法
9664
查看次数

如何使用超过300百万的数据创建一个数组

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace testes
{
    class Program
    {
        static void Main(string[] args)
        {
            Int64[] a = new Int64[300000000];
            a[0] = 10;

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

运行此代码后,我收到一个System.OutOfMemoryException但我的计算机有8千兆ram免费.请你帮助我好吗?

我是C#的初学者.我已经将编译目标cpu更改为x64,认为只有这个就足够了.谢谢吕克

c# memory-management out-of-memory

3
推荐指数
1
解决办法
135
查看次数

非托管VC++应用程序在Windows服务器上的内存消耗

好的,所以我有一个非常大的多线程非托管c ++应用程序(服务器),它运行在Windows 2003服务器上.它为20-50个并发用户提供各种业务逻辑的会话...有时,由于用户在客户端打开了大量窗口等对象/会话缓存之类的东西,它可能会占用大量内存(每个窗口都有一个单独的服务器'会话'.

我们经常看到消耗超过5-600 MB的物理内存和5-600 MB的虚拟内存.一旦达到这一点,我们似乎开始出现"内存不足"错误.

现在我知道Windows会在感觉需要释放物理内存时启动页面错误,而且win32应用程序通常只能分配最多4GB的内存,实际上只有2GB可用于应用程序实际使用'用户模式'地址空间,甚至更少的其他库加载后......我不确定'用户模式'内存使用情况是否是任务管理器上报告的内容. ..

所以无论如何我真正的问题是:

我如何知道我的应用程序可以访问多少用户模式内存,以及在任何给定时间(最好是从应用程序外部,即某些Windows管理工具)使用了多少内存?

[edit]在查看Process Explorer和网站之后,看起来值'Virtual Size'是应用程序可以访问多少内存的值.

memory windows visual-c++

2
推荐指数
1
解决办法
6699
查看次数

将2d数组的一维表示为新数组

我有一个2D阵列a[3,3].如何将一个维度表示为一个新数组并将其传递给某个函数?

int[,] a = new int[3,3];

a[0,0] = 1;

...

string b = concatenate(a[0]);     // where concatenate is a function
                                  // take a one dimension array as param
Run Code Online (Sandbox Code Playgroud)

另外,我可以使用C#创建65000x65000阵列吗?我得到了一些"内存不足"的错误.

c#

2
推荐指数
1
解决办法
1368
查看次数

内存不足C#列表

我应该如何制作一个可以容纳这个范围的列表(在代码中),因为它显示内存异常?

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            var l1 = Enumerable.Range(999900000, 1000000000).ToList();
            l1.ForEach(f => Console.WriteLine(f));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# list out-of-memory

0
推荐指数
1
解决办法
3822
查看次数