首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

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

2012-04-17 
关于大量类创建后的效率问题。在C#应用中需要创建并操作大数据量的类,比如需要创建几万个类对象。此时有两种

关于大量类创建后的效率问题。
在C#应用中需要创建并操作大数据量的类,比如需要创建几万个类对象。
此时有两种方式:

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

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

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

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






[解决办法]
使用设计模式中的享元模式。
[解决办法]
方法并不是数据,只是一个处理数据的过程,对于类来说,方法并不属于某一实例,而是有一个方法表。调用的时候只是去方法表里把方法拿出来,所以无论你生成多少个实例,方法表里的内容都是一样的。

[解决办法]
方法保留的只是指针,所有类实例的方法都执行同一个地方,不会像那些常规类型一样,被复制
[解决办法]
方法是共享的,不增加内存
从汇编层面上讲,数据和行为是分段保存
100个对象,数据有100份,但行为只有1份
只是将对象的指针(this)传入方法

热点排行