代码量是否会使数据结构更大?

时间:2009-05-05 04:09:15

标签: c# data-structures size

我有一个项目的arraylist,其中只有十个变量。但这些项目有很多代码,我想添加更多。我很好奇这将如何影响我的结构的大小。我的直觉告诉我每个人都有一个堆栈,但随着参数的传递和东西,我可能不认为我不确定。那么大致只是代码添加到我的数据结构中了多少?

7 个答案:

答案 0 :(得分:10)

代码不会增加您的结构大小。

答案 1 :(得分:3)

与类关联的代码通常不会按实例重复,因此添加代码不应影响arraylist的大小。

答案 2 :(得分:3)

即使您将代码放在与数据相同的花括号中,编译器也会将其分开并将其放在不同的内存部分中。

这样,您只需要一份代码副本 - 没有必要为使用它的每个项目制作新副本。

只有在非常大的项目中,编译代码的实际大小才会成为问题;通常,它不比源文本大。在小程序中,它通常是几百K或一个兆或两个最多。在现代机器上不值得担心。

答案 3 :(得分:2)

对象实例的大小(大部分)是其数据成员的总和。函数成员不是按实例存储的,并且对实例大小没有影响。

您的程序每个线程只有一个堆栈。调用函数时,为该函数的每个参数和变量保留堆栈内存,并在返回时释放。

如果在没有new的函数中实例化了对象,则将其存储在堆栈中。如果使用new,则只有一个引用存储在堆栈中,并且实例本身存储在堆上。

:)

答案 4 :(得分:1)

代码不存储在堆上。

无论您创建多少个对象,您都只能将代码放在一个位置。

答案 5 :(得分:1)

对象工作的类成员函数以不同方式存储,它对对象的大小没有影响。其中类中的数据成员将成为对象的一部分,如果更改变量的类型,对象大小将会更改。

例如:

class Test
{
    1. member functions

    //it does not matter how many functions you have, this section does not contribute
    // to object size

    2. member variables
    //this contributes to the object size, define an int or  double etc will change the object size
}

答案 6 :(得分:1)

每个对象都没有自己的堆栈。堆栈是每个线程/进程,而不是每个对象。