我有一个只有10个变量的项目列表。但是这些项目有很多代码,我想补充更多。我很好奇这将如何影响我的结构的大小。我的直觉告诉我,每个人都有一个堆栈,但有争论被传递,而我可能没有考虑到我不确定。那么粗略地说,代码添加到我的数据结构中有多少?代码量是否使数据结构更大?
4
A
回答
10
代码不会添加到您的结构的大小。
3
与类关联的代码通常不会每个实例重复一次,因此添加代码不应影响您的数组列表的大小。
3
即使您将代码放在与数据相同的一组大括号中,编译器也会将它分离出来并放入不同的存储器部分。
这样,您只需要代码的一个副本 - 没有必要为每个使用它的项目创建一个新副本。
只有在非常大的项目中,编译后的代码的实际大小才成为问题;通常情况下,它并不比源文本大得多。在小程序中,通常最多只有几百K或者一两个兆或两个。现代机器不值得担心。
1
代码不存储在堆上。
无论您创建了多少个对象,只会将代码放在一个地方。
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
}
1
每个对象不具有它自己的堆栈。堆栈是每个线程/进程,而不是每个对象。
2
对象实例的大小(大部分)是其数据成员的总和。函数成员不是按实例存储的,并且对实例大小没有影响。
你的程序每个线程有一个栈。当一个函数被调用时,堆栈内存被保留给该函数的每个参数和变量,并在返回时被释放。
如果在没有新建的函数中实例化对象,则该对象将存储在堆栈中。如果使用new,则只有引用存储在堆栈中,并且实例本身存储在堆中。
:)
相关问题
- 1. 是否有荷兰代码(RIASEC)数据的结构化来源?
- 2. 更好的代码结构?
- 3. 数据结构为更大数量的文件
- 4. 大量数据导入的表结构
- 5. c#大量数据的代码优化
- 6. java是否有“LinkedConcurrentHashMap”数据结构?
- 7. PHP是否有Set数据结构?
- 8. C++数据结构大O
- 9. 使用结构,无法打印代码中的房屋数量
- 10. 数据库结构:此结构是否适用于m:m?
- 11. 用于处理大量数据的库/数据结构
- 12. 将大量图形数据结构存储在数据库中
- 13. 使用变量结构的数据
- 14. Journey测量 - 数据结构
- 15. 其中Data Studio使用的数据结构代码
- 16. Bootstrap代码结构
- 17. Golang代码结构
- 18. 更改Json数据结构
- 19. 更改数据结构
- 20. 是否有文档讨论vim源代码的结构?
- 21. SVN合并大量更改的代码
- 22. 任何Intuit Anywhere SDK是否使用通用数据结构?
- 23. SQLite结果集是否在内存中的数据结构?
- 24. 大量的页面`查看源代码行是否有意义?
- 25. 如何检测数据库结构是否更改? (不是内容!)
- 26. 下面的代码是否有一个更短的Datetime构造?
- 27. 是否有更好的方法来重构这段代码?
- 28. 是否可以使用linq-to-sql插入大量数据?
- 29. 如何重构大量使用PPL的代码。 C++
- 30. 数据结构时,数据是客户
实际上,编译后的代码通常比源表示要小得多。 – 2009-05-05 06:00:08