내 클래스 라이브러리 문자열의 많은은 첫 번째 문자가 특정 문자와 일치하는지 여부를 확인합니다. 색인을 통해 첫 번째 문자에 액세스하여이 작업을 수행합니다.문자열의 첫 번째 문자를 가져 오는 빠른 방법은 무엇입니까?
var isMatch = stringToCheck[0] == SPECIAL_CHARACTER;
빠른 검사 방법이 있습니까?
배경 : 내 클래스 라이브러리는 문자열을 기반으로 인터페이스를 제공합니다. 위의 검사가 필요한 내부 데이터 구조로 변환됩니다. 불행하게도 많은 데이터가 인터페이스를 통과합니다. 필자는 전체 테스트 시간 중 40 % 이상이 단일 테스트 라인을 사용하여 테스트 스위트를 프로파일 링했습니다.
문자열 시작 부분에서 2 바이트를 검색하고 16 비트 값을 다른 16 비트 값과 비교하는 것보다 속도가 더 빠를 수 있습니까? 코드가하는 또 다른 작업은 무엇입니까? 코드의 나머지 60 %가 이보다 싼 가격이라면, 당신이 꽤 좋은 모양 인 것처럼 보이겠습니까? –
그만큼 빠르다 (또는'.First'를 사용하십시오). 그 라인에서 당신 시간의 40 % *를 보냈습니까? 그럴 것 같아. – BradleyDotNET
다음으로 가장 빠른 방법은 '안전하지 않은'코드 일 것이지만 'System.String'의 메모리 레이아웃이 .NET 버전간에 동일하게 유지되지 않도록주의하십시오. – Dai