- 배열의 복사는 Array 클래스의 정적 메소드인 Copy를 이용하거나
- Buffer.BlockCopy 를 이용할 수 있다.
- 아래 코드에서는 Buffer.BlockCopy가 좀 더 좋은 성능을 보여준다.
using System;
using System.Diagnostics;
namespace SqlerCSharp.Ch08_02
{
class Program
{
static void Main(string[] args)
{
// BlockCopy
Stopwatch sw1 = Stopwatch.StartNew();
for(int i = 0; i < 10000000; i++)
{
int[] source = new int[100];
int[] target = new int[100];
Buffer.BlockCopy(source, 0, target, 0, 100);
}
sw1.Stop();
// ArrayCopy
Stopwatch sw2 = Stopwatch.StartNew();
for(int i = 0; i < 10000000; i++)
{
int[] source = new int[100];
int[] target = new int[100];
Array.Copy(source, 0, target, 0, 100);
}
sw2.Stop();
Console.WriteLine("Buffer.BlockCopy : {0} ms", sw1.ElapsedMilliseconds);
Console.WriteLine("Array.Copy : {0} ms", sw2.ElapsedMilliseconds);
}
}
}
'Language > C#' 카테고리의 다른 글
[C#] 문자열 다루기 - string, 문자열 포맷 (0) | 2020.12.23 |
---|---|
[C#] 배열 정렬 (0) | 2020.12.23 |
[C#] Jagged 배열 (0) | 2020.12.23 |
[C#] try ~ catch ~ finally, throw (0) | 2020.12.23 |
[C#] 박싱(Boxing)과 언박싱(Unboxing) (0) | 2020.12.23 |