zoukankan      html  css  js  c++  java
  • c# 那些不常用的操作

    stackalloc


    临时数组用到内存怎么办?

    image


    有一种思路是把他抽成成员变量,复用,复用是减少GC,但不彻底,这个缓存的管理也麻烦,这个缓存自身还是要经过GC的


    用stackalloc可以彻底解决

    image

    stackalloc 分配的内存在栈上,无需清理,这个方式仅仅用于blittable的结构体,及数值类型以及struct内部没有引用类型


    比如


    struct ABC//这就不是一个blittable结构

    {

    string aab;

    }


    blittable结构

    由此衍生出来的问题是,我们怎么尽可能让struct 成为blittable的,c#有另外一个很少人使用的特性

    image

    使用unsafe fixed 语法,就可以定义固定的内存,和c语言一样。

    这样可以用和c一样的0终结char数组去表示字符串


    image

    blitable结构的好处是他是内存一致的,在读写方面我们就可以回到c语言一样的思路

  • 相关阅读:
    优化--工具
    架构
    Gradle
    战争迷雾
    进度管理
    工具
    架构
    牛人
    apk 破解
    效率
  • 原文地址:https://www.cnblogs.com/crazylights/p/14523467.html
Copyright © 2011-2022 走看看