函数参数中的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号