函数参数中的ref关键字
     突软想到一个问题,以前给函数传递参数时,因为都是引用类型的数据所以没有发现加于不加ref关键字有何区别。如果传递的是值类型参数的话,应该效果就不一样了。 
在一个参数数据量特别大的时候,比如byte[1024000]而且调用这个函数特别频繁的时候,是不是加ref关键字可以提升程序的性能呢?这个我还没有测试。现将这个想法在此记录。
   
void SaveData(byte[] src) 
{ 
} 
   
   
void SaveData(ref byte[] src) 

 
   
今天写了一个小测试程序。结果是加了ref关键字以后速度反而降低了。具体原因我就不去研究了,知道结果就可以了。
   
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main(string[] args)
        {
            byte[] a = new byte[102400000];
            int startTick, endTick;
            
            startTick = System.Environment.TickCount;
            Console.WriteLine(a);
            for(int i=0; i<100000000; i++)
                SetA(ref a);
            endTick = System.Environment.TickCount;
            Console.WriteLine(endTick - startTick);
            Console.Read();
        }
        static private void SetA(ref byte[] a)
        {
            a[0] = 3;
        }
   
在一个参数数据量特别大的时候,比如byte[1024000]而且调用这个函数特别频繁的时候,是不是加ref关键字可以提升程序的性能呢?这个我还没有测试。现将这个想法在此记录。
今天写了一个小测试程序。结果是加了ref关键字以后速度反而降低了。具体原因我就不去研究了,知道结果就可以了。
                    
                
                
            
        
浙公网安备 33010602011771号