UTF8로 인코딩 된 미리 할당 된 관리되지 않는 버퍼에 C# 문자열을 작성해야합니다.UTF8 인코딩을 사용하여 미리 할당 된 관리되지 않는 버퍼에 C# 문자열 작성
- 없음 새로운 할당 (그래서, 바이트 배열 또는 다른 인스턴스화를 만드는 관련된 답변을 저를 직접하지 마십시오) : 응답하기 전에 다음 요구 사항를 참조하시기 바랍니다
- 아니요 비 관리 코드로 변환 (핀 보크/캘러스 없음)
현재 OpCodes.Cpblk를 사용하여 C#의 원시 문자열을 16 비트 문자를 사용하여 관리되지 않는 버퍼로 복사하고 있습니다. 이것은 x64 아키텍처에서 관리되지 않는 memcpy를 사용하는 것과 거의 동일한 성능을 제공하며 실제로 처리량이 필요합니다.
나는 *는 문자 같은 문자열 고정 을 고려하고 그것을 반복하지만 성능에 관해서는 모두 성가신 최적보다 적은 것이다 점프 테이블없이 인코더를 구현하고있다.
C++로 작성할 수없는 이유가 있습니까? – Gabe
전환을 피하려면 C++을 사용하면 아무런 효과가 없습니다. –
C++/CLR로 작성하면 전환이 없습니다. – Gabe