Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 基本对象类的多个数组_C#_Class_Memory_Crash_Base Class - Fatal编程技术网

C# 基本对象类的多个数组

C# 基本对象类的多个数组,c#,class,memory,crash,base-class,C#,Class,Memory,Crash,Base Class,好的,我正在试验,我想知道一些事情。 首先,我将把代码粘贴到我的基本对象类中,这样你就知道了 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace P_Object { class base_object { string pronoun_name; string noun_name; stri

好的,我正在试验,我想知道一些事情。 首先,我将把代码粘贴到我的基本对象类中,这样你就知道了

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

namespace P_Object
{
    class base_object
    {
        string pronoun_name;
        string noun_name;
        string internal_name;
        string internal_id;
        Dictionary<string, string> relations = new Dictionary<string, string>();

    }
}
我的主要目标是测试在C#崩溃之前,我能将它推到多大程度,即我必须使用多少阵列内存……我能想到的崩溃的唯一原因是我不知何故耗尽了内存?
:/

在这方面可能有编译器强制的限制,但在内存使用方面,你可以将c推到多大程度是硬件的一个功能。更多的内存允许更多的数组等。根据这个问题很难更具体。

为什么这对你很重要?你到底想验证什么

所有的平台都有有限的内存能力。看看你的代码,我无法想象有哪一种情况下你需要一次在堆栈上放那么多东西

因此,基本上,对于每个对象数组,内存中保留了9999999个空指针。在64位目标中,每个数组保留了9999999*8字节的内存。这就是7999992,几乎每个对象都有一个gig。然后,在一个可能是内存在4到16千兆之间

当然会崩溃


我说的是空指针,因为你初始化了数组,但是你从来没有将任何东西存储到任何索引中。当你定义一个数组时,C#不会为你实例化你的对象base_对象。每个数组元素都会指向你创建的对象的地址。所以在它们的当前状态下,它们只是空指针w没有初始化基本对象。

你的问题是什么?System.TypeInitializationException未处理消息:“Program”的类型初始值设定项引发了一个异常。这就是崩溃。哦,真的吗?这是有道理的。所以我基本上有20 GB的空对象。哇。哦。哦。我真的做到了。哈哈。我应该知道的。
private base_object[] objects1=new base_object[99999999];
private base_object[] objects2 = new base_object[99999999];
private base_object[] objects3 = new base_object[99999999];
private base_object[] objects4 = new base_object[99999999];
private base_object[] objects5 = new base_object[99999999];
private base_object[] objects6 = new base_object[99999999];
private base_object[] objects7 = new base_object[99999999];
private base_object[] objects8 = new base_object[99999999];
private base_object[] objects9 = new base_object[99999999];
private base_object[] objects10 = new base_object[99999999];
private base_object[] objects11 = new base_object[99999999];
private base_object[] objects12 = new base_object[99999999];
private base_object[] objects13 = new base_object[99999999];
private base_object[] objects14 = new base_object[99999999];
private base_object[] objects15 = new base_object[99999999];
private base_object[] objects16 = new base_object[99999999];
private base_object[] objects17 = new base_object[99999999];
private base_object[] objects18 = new base_object[99999999];
private base_object[] objects19 = new base_object[99999999];
private base_object[] objects20 = new base_object[99999999];
private base_object[] objects21 = new base_object[99999999];
private base_object[] objects22 = new base_object[99999999];
private base_object[] objects23 = new base_object[99999999];
private base_object[] objects24 = new base_object[99999999];
private base_object[] objects25 = new base_object[99999999];