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语言一样的思路

  • 相关阅读:
    WebApi调用及发布
    List<T> 去除重复数据
    C#正则表达式去除XML标签
    SSIS 发送邮件
    域登录验证.net版
    js获取select选中的值
    ionic常见错误
    mac安装brew homebrew
    flutter ios编译报错集
    dart 格式化输出
  • 原文地址:https://www.cnblogs.com/crazylights/p/14523467.html
Copyright © 2011-2022 走看看