Array.Copy 및 Buffer.BlockCopy는 모두 동일한 작업을 수행하지만 BlockCopy
빠른 바이트 수준의 기본 배열 복사를 목표로하는 반면 Copy
범용 구현입니다. 내 질문은-어떤 상황에서 사용해야 BlockCopy
합니까? 기본 유형 배열을 복사 할 때 언제라도 사용해야합니까, 아니면 성능을 위해 코딩하는 경우에만 사용해야합니까? Buffer.BlockCopy
over 사용 에 대해 본질적으로 위험한 것이 Array.Copy
있습니까?
byte[]
. 릴리스 버전에는 차이가 없습니다. 때때로 Array.Copy
, 때로는 Buffer.BlockCopy
(약간) 더 빠릅니다.
Array.Copy
예를 들어 동일한 순위 배열 만 복사 할 수 있습니다.
Marshal.Copy
:-). 음,Array.Copy
참조 유형, 복합 값 유형 및 유형이 변경되지 않는 경우Buffer.BlockCopy
값 유형, 바이트 배열 및 바이트 매직 간의 "변환"에 사용하십시오. F.ex.StructLayout
당신이 무엇을하는지 안다면 와의 조합 은 매우 강력합니다. 성능에 관해서는memcpy
/에 대한 관리되지 않는 호출cpblk
이 가장 빠른 것 같습니다 . code4k.blogspot.nl/2010/10/… 참조하십시오 .