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];