关于大量类创建后的效率问题。

康斯坦汀 2012-03-26 11:51:22
在C#应用中需要创建并操作大数据量的类,比如需要创建几万个类对象。
此时有两种方式:

方式1)
类中只保存数据,即拿类当数据结构使用,只有属性定义。没有任何操作方法,将操作类的方法置于
操作对象。由操作对象操作数据对象。操作对象是一个。

方式2)
类中既保存数据同时又定义方法。操作时驱动类自身处理逻辑。

问题:
使用方式2)在编程时较简单,也符合面对对象设计。但相比方式1)是否会占用更大内存,从而产生效率问题?

自己写的简单测试程序表明,似乎方式2)相比方式1)并没有占用更大内存。这是为什么?




...全文
136 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
nonocast 2012-03-26
  • 打赏
  • 举报
回复
方法是共享的,不增加内存
从汇编层面上讲,数据和行为是分段保存
100个对象,数据有100份,但行为只有1份
只是将对象的指针(this)传入方法
bdmh 2012-03-26
  • 打赏
  • 举报
回复
方法保留的只是指针,所有类实例的方法都执行同一个地方,不会像那些常规类型一样,被复制
烟灰洒落键盘 2012-03-26
  • 打赏
  • 举报
回复
可以建立对象池,复用对象,类似于线程池的原理
cheng2005 2012-03-26
  • 打赏
  • 举报
回复
方法并不是数据,只是一个处理数据的过程,对于类来说,方法并不属于某一实例,而是有一个方法表。调用的时候只是去方法表里把方法拿出来,所以无论你生成多少个实例,方法表里的内容都是一样的。
mngzilin 2012-03-26
  • 打赏
  • 举报
回复
你怎样测试的?代码
threenewbee 2012-03-26
  • 打赏
  • 举报
回复
使用设计模式中的享元模式。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧