이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 3616|회답: 2

[출처] .NET/C#은 Span을 사용하여 고성능으로 문자열을 처리합니다

[링크 복사]
게시됨 2023. 5. 25. 오후 8:13:18 | | | |
요구사항: 최근<T> Span과 Memory 같은 지식을 살펴보면<T>, 이러한 객체를 사용하는 데는 많은 장점이 있다고 느낍니다. 예를 들어, 메모리에 직접 접근할 수 있고(매우 안전하며), 불필요한 메모리 할당 감소(씬에 따라 예: 문자열 변환의 서브스트링 가로채기), 메모리 값의 수정, 그리고 여전히 깊이 있는 이해는 아닌 학습 측면 등이 있습니다.

System.Span<T>은 .NET 코어에서 새로운 값 타입입니다. 이 메모리는 관리되는 객체와 연관되어 있든, 네이티브 코드가 상호 운용성을 통해 제공하든, 스택에 있든 상관없이 임의의 메모리 영역을 연속적으로 표현할 수 있도록 지원합니다. 이 방법은 배열과 유사한 성능 특성을 가지면서 보안 접근을 제공합니다. 사용 시 Span은 거의 또는 전혀 오버헤드 없이 메모리와 데이터 보안을 보장합니다.

예를 들어, Substring을 사용해 문자열을 int, guid, long 등으로 변환하면 가로채는 문자열 내용을 더 이상 사용하지 않지만, Substring을 호출해 새 문자열을 반환하면 새로운 메모리 공간을 요청하게 됩니다.

먼저, 다음과 같이 BenchmarkDotNet 벤치마킹 도구가 소개됩니다:

.NET/C#은 BenchmarkDotNet을 사용하여 코드 성능을 테스트합니다
https://www.itsvse.com/thread-9576-1-1.html
테스트 코드는 다음과 같습니다:

결과는 다음과 같습니다:



참조:

하이퍼링크 로그인이 보입니다.
하이퍼링크 로그인이 보입니다.





이전의:.NET/C# 문법 goto 문장
다음:도커는 draw.io 를 기반으로 온라인 마인드맵을 만듭니다
게시됨 2023. 5. 26. 오후 2:11:02 |
와서 배워...
 집주인| 게시됨 2023. 9. 1. 오후 9:59:03 |
만약 그렇다면,.NET 프레임워크참조 가능System.Memory.dllReadOnlySpan, AsSpan 사용
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com