首页 新闻 会员 周边 捐助

值类型与引用类型间的性能优化

0
[待解决问题]

频繁赋值操作最好是建立在值类型对象还是引用类型对象上存储?比如100ms刷新的一组数据

醉_焉止荭尘的主页 醉_焉止荭尘 | 初学一级 | 园豆:184
提问于:2017-12-12 01:10
< >
分享
所有回答(4)
0

用完就不要了,用值类型
要传来传去用引用

长蘑菇星人 | 园豆:1832 (小虾三级) | 2017-12-12 08:22

频繁赋值 是决定使用哪种类型的因素吗

支持(0) 反对(0) 醉_焉止荭尘 | 园豆:184 (初学一级) | 2017-12-12 09:13

@醉_焉止荭尘: 看用途,不是看创建方式.

支持(0) 反对(0) 长蘑菇星人 | 园豆:1832 (小虾三级) | 2017-12-12 09:15

@长蘑菇星人: Thanks

支持(0) 反对(0) 醉_焉止荭尘 | 园豆:184 (初学一级) | 2017-12-12 10:28
0

各自有不同的场景需求,不然干嘛设计两种,比如指针类型在后续语言使用中就取消了。

花飘水流兮 | 园豆:13617 (专家六级) | 2017-12-12 08:59

所以我有疑惑,像这样频繁赋值,但数据不会如此频繁的被使用(十几秒左右会使用)的场景。。。

支持(0) 反对(0) 醉_焉止荭尘 | 园豆:184 (初学一级) | 2017-12-12 09:12
0

对于你的场景而言,根本就不需要关心值类型或者引用类型赋值的差异,相对而言考虑如何保证线程安全性这才是正道。

Daniel Cai | 园豆:10424 (专家六级) | 2017-12-12 09:47

Thanks, 恩, 这个提问是在做这工作过程中的小疑惑。

支持(0) 反对(0) 醉_焉止荭尘 | 园豆:184 (初学一级) | 2017-12-12 10:29
0

请先了解什么是值类型什么是引用类型,你才能分清在什么场景下作用什么类型。因此,你的问题是概念不清。

但是,在C#中,不论是什么类型,其赋值的性能几乎是一样的。所以,赋值是不会影响性能的。

C#中影响性能有几个点,只要谨慎处理这几个点就不会差到哪的。如:创建、反射、装包/拆包、算法、循环、线程/并发等。

其实从本质上来说,能影响性能的只有在分配内存和调用CPU指令时。所以,为什么说C或C++更高效呢!

中文代码 | 园豆:951 (小虾三级) | 2017-12-18 17:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册