◆◇◆ 克隆跟创建一个新的对象哪个性能更高?为什么? ◆◇◆
克隆跟创建一个新的对象哪个性能更高?为什么?
克隆采用深拷贝。
问题点数:50、回复次数:16Top
1 楼hegang888888888(^_^)回复于 2006-12-01 11:47:35 得分 1
没研究过,关注Top
2 楼icebamboo123(努力考个结婚证书)回复于 2006-12-01 11:59:19 得分 2
应该是新建快一点,做程序时,有用到clone,但是,调试时,发现,总是会跳一下.
原因或许时这样,因为要把被克隆东东,和克隆东东都都加入内容.
就好像是迭代和递归一样.递归的速度要下降很多
不知道正确否,希望高人指正Top
3 楼magicmaster(BLUE·Wishing On A Star)回复于 2006-12-01 12:08:58 得分 2
一般新建的快Top
4 楼viena(维也纳N02)回复于 2006-12-01 12:17:41 得分 2
当然新建快,但是新建与克隆效果不一样啊~Top
5 楼shuanghei(双黑)回复于 2006-12-01 12:37:29 得分 2
毫无疑问。新建块。
你可以自己做个计数器。分别克隆或者新建100万的对象。看速度差距俄Top
6 楼winner2050(winner)回复于 2006-12-01 12:42:18 得分 2
自己测试好些。Top
7 楼dafeng168(我吾系二五仔)回复于 2006-12-01 12:46:39 得分 0
学习Top
8 楼vbman2003(家人)回复于 2006-12-01 12:54:03 得分 22
http://www.microsoft.com/china/msdn/archives/library/welcome/dsmsdn/data05102001.asp
你可以参考一下这个Top
9 楼iuhxq(小灰)回复于 2006-12-01 12:57:45 得分 5
新建和克隆,如果要新建一个很复杂,经过一定运算才能达到的对象,很明显,是克窿要快。
因为克窿只是复制数据。不需要经过运算。
比如一个对象
public class Md5
{
public string value = "";
public Md5(string str)
{
value = 计算MD5值(str);
}
}
这个对象,显示是克窿比较快。Top
10 楼flyforlove(吾将远去)回复于 2006-12-01 13:11:06 得分 2
克隆和新建不是一回事吧,
如果要达到同样的结果的话,应该是克隆快。Top
11 楼peng_0_0_1983(这头猪很瘦)回复于 2006-12-01 13:30:56 得分 5
克隆分为浅表克隆和深克隆。浅表克隆不会传见新得引用对象。深克隆则会。
所以,浅表克隆和深克隆得效率又是相差很大得。
所以克隆和新建得效率高低要视具体对象而定。Top
12 楼peng_0_0_1983(这头猪很瘦)回复于 2006-12-01 13:31:44 得分 0
错了,第一句
克隆分为浅表克隆和深克隆。浅表克隆不会 创建 新得引用对象。深克隆则会。Top
13 楼real_weboy(波→ONLINE)回复于 2006-12-01 15:04:16 得分 0
所以我现在就有一点想不通。
在 PetShop 中。为什么要缓存 Parameter 呢。每次都新建不好吗,缓存的话,取出来的时候还得克隆。
还请高人指点。Top
14 楼real_weboy(波→ONLINE)回复于 2006-12-02 15:51:54 得分 0
upTop
15 楼real_weboy(波→ONLINE)回复于 2006-12-04 20:25:03 得分 0
upTop
16 楼flyforlove(吾将远去)回复于 2006-12-05 08:54:59 得分 5
real_weboy(波→ONLINE) ( ) 信誉:100 Blog 2006-12-1 15:04:16 得分: 0
所以我现在就有一点想不通。
在 PetShop 中。为什么要缓存 Parameter 呢。每次都新建不好吗,缓存的话,取出来的时候还得克隆。
还请高人指点。
--------------------------------
克隆只要拷贝数据就可以了,你不用去管什么所谓的深克隆还是浅克隆,
你想要得到完全一样的一个实例的话,肯定还是克隆快。Top





