zoukankan      html  css  js  c++  java
  • C# 关键字 fixed

    fixed是什么?

    MSDN解释如下:

    fixed语句阻止gc对可移动变量进行重定向。fixed语句可以设置一个指针关联到托管变量,并且在执行fixed语句过程中,锚定该变量(即gc不管该变量)。托管变量的指针只在fixed上下文有效。

    为什么要用fixed?

    回收机制是采用根标记堆上的对象,当根不可达时则回收堆所占的内存当回收完毕时的下一阶段就是压缩内存,这个阶段垃圾回收器线性的便利堆,以寻找未标记(垃圾)对象的连续内存块,

    如果发现的内存块比较小,垃圾回收期会忽略它们,但是,如果发现大的,可用的连续内存块,垃圾回收器会把非垃圾的对象移动到这里以压缩堆。

    当我们的程序强调性能优先时,可以使用该语句。

                byte[] arr = new byte[] { 1, 2, 3, 4 };
                unsafe
                {
                    fixed (byte* p = arr)
                    {
                        int sum = 0;
                        for (int i = 0; i < arr.Count(); i++)
                        {
                            sum = sum + p[i];
                        }
                    }
                }
  • 相关阅读:
    后渗透
    Msf小结
    安全狗文件绕过
    文件上传漏洞
    SQL Injection(Blind)
    SQL Injection
    Linux 基础整理
    Python pip升级及升级失败解决方案
    文件包含
    信息收集
  • 原文地址:https://www.cnblogs.com/merlinzjl/p/14359577.html
Copyright © 2011-2022 走看看