在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
临时数组用到内存怎么办? 有一种思路是把他抽成成员变量,复用,复用是减少GC,但不彻底,这个缓存的管理也麻烦,这个缓存自身还是要经过GC的 用stackalloc可以彻底解决 stackalloc 分配的内存在栈上,无需清理,这个方式仅仅用于blittable的结构体,及数值类型以及struct内部没有引用类型 比如 struct ABC//这就不是一个blittable结构 { string aab; } blittable结构由此衍生出来的问题是,我们怎么尽可能让struct 成为blittable的,c#有另外一个很少人使用的特性 使用unsafe fixed 语法,就可以定义固定的内存,和c语言一样。 这样可以用和c一样的0终结char数组去表示字符串 blitable结构的好处是他是内存一致的,在读写方面我们就可以回到c语言一样的思路 |
请发表评论