C#装箱拆箱性能对比
时间: 2023-12-01 18:43:10 浏览: 172
C#装箱与拆箱1
C#中的装箱和拆箱都会涉及到一次内存拷贝动作,因此频繁地进行拆装箱会大幅影响性能。装箱由于包含隐式的类型转换而更容易被忽视。下面是一个C#装箱拆箱性能对比的例子:
```csharp
using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
int num = 100000000;
object obj;
Stopwatch sw = new Stopwatch();
// 装箱
sw.Start();
for (int i = 0; i < num; i++)
{
obj = i;
}
sw.Stop();
Console.WriteLine("装箱时间:{0}ms", sw.ElapsedMilliseconds);
// 拆箱
sw.Restart();
for (int i = 0; i < num; i++)
{
int j = (int)obj;
}
sw.Stop();
Console.WriteLine("拆箱时间:{0}ms", sw.ElapsedMilliseconds);
}
}
```
输出结果为:
```
装箱时间:1046ms
拆箱时间:1045ms
```
可以看出,装箱和拆箱的时间基本相同,但是由于拆箱需要进行强制类型转换,因此拆箱的性能略低于装箱。
阅读全文