巧用struct
struct和class的区别常常被人忘记,struct结构是值类型,它与class不同的是:struct传递时并不是靠引用(指针)而是靠复制,我们可以通俗地认为,它是通过内存复制来实现传递的(真实的情况是通过字节对齐规则循环多次复制内存)。
好处:
1.作为函数中的局部变量,分配的变量内存是在栈上的,作用域结束就回收了,栈上的内存回收十分快速和简单,不会产生碎片,又不需要垃圾回收。
2.struct数组对提高内存访问速度也有帮助。由于struct是值类型,所以它的内存与值类型都是连续的,而class数组则只是引用(指针)变量空间连续,这是大不相同的。连续内存可以帮助我们提高缓存的命中率。但也不是所有的struct都能提高缓存命中率,如果struct太大,会导致拿的缓存只是一部分,那缓存就没意义了。这种情况可以直接使用原值类型(int[]、bool[]),同步索引来代替struct。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了