巧用struct

struct和class的区别常常被人忘记,struct结构是值类型,它与class不同的是:struct传递时并不是靠引用(指针)而是靠复制,我们可以通俗地认为,它是通过内存复制来实现传递的(真实的情况是通过字节对齐规则循环多次复制内存)。

好处:

1.作为函数中的局部变量,分配的变量内存是在栈上的,作用域结束就回收了,栈上的内存回收十分快速和简单,不会产生碎片,又不需要垃圾回收。

2.struct数组对提高内存访问速度也有帮助。由于struct是值类型,所以它的内存与值类型都是连续的,而class数组则只是引用(指针)变量空间连续,这是大不相同的。连续内存可以帮助我们提高缓存的命中率。但也不是所有的struct都能提高缓存命中率,如果struct太大,会导致拿的缓存只是一部分,那缓存就没意义了。这种情况可以直接使用原值类型(int[]、bool[]),同步索引来代替struct。

posted @   mc宇少  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示