C# 성능 최적화 세부 정보
1. string.Empty를 사용하여 빈 문자열 변수에 초기 값 할당
String.Empty는 참조이고 ""는 구체적인 구현입니다
string filter=“”;//不建议 string filter=string.Empty; //建议
2. 빈 문자열을 비교하려면 str.Length == 0을 사용하세요.
가장 빠른 방법: if (str.Length == 0)
두 번째: if (str == String.Empty) 또는 if (str == "")
3. 불필요한 문자열 ToUpper 및 ToLower 작업을 피하세요
ToUpper 및 ToLower와 같은 메서드는 문자열 쌍을 다시 생성합니다
String.Compare는 문자열 대소문자를 무시할 수 있습니다
//不推荐的写法 if(s1.ToUpper()==s2.ToUpper()) …; //推荐的写法 if(String.Compare( s1, s2, true ) == 0) …;
4. 문자열 접합 작업을 위해 StringBuilder를 능숙하게 사용하십시오.
더 긴 문자열을 구성하려는 경우, 특히 문자열인 경우 10번 이상(경험치) 스플라이스된 경우 문자열 스플라이싱 작업에는 StringBuilder를 사용해야 합니다.
[object Object]
5. StringBuilder 생성 시 초기 크기를 지정해야 합니다.
기본 초기 크기는 16입니다. 이를 초과하면 크기를 조정하고 GC 압력을 높여야 합니다. 경험적 값을 기반으로 초기 크기를 지정하는 것이 좋습니다.
StringBuilder sb = new StringBuilder(); for (int i = 0; i < 10; i++) { sb.Append(i); } string s = sb.ToString(); //建议修改为 StringBuilder sb = new StringBuilder(256); for (int i = 0; i < 10; i++) { sb.Append(i); } string s = sb.ToString();
6. StringBuilder 남용을 피하세요
str1+str2+str3+str4와 같은 문자열 연결 작업은 StringBuilder보다 더 효율적인 String.Concat(str1, str2, str3, str4)로 컴파일됩니다. String.Concat은 문자열 길이를 한 번에 결정하며, StringBuilder는 문자열 개체를 여러 번 생성하는 데 적합한 크기 조정을 수행해야 합니다.
7. .Length=0
을 직접 설정하여 StringBuilder를 초기화합니다.
실험 결과에 따르면 동일한 StringBuilder 객체를 여러 번 사용할 경우 .Length=0을 직접 설정하는 것이 초기화가 가장 빠릅니다.
StringBuiler sb = new StringBuilder(256); ...... sb.Remove(0, sb.Length); //不建议 sb.Length = 0; //建议
8. StringBuilder가 차지하는 메모리를 해제하는 데 .Length=0을 사용하지 마세요
아아앙
9.계속
위 내용은 C# 문자열 연산입니다. 가비지 수집 부담을 줄여주는 내용은 PHP 중국어 웹사이트(www.php.cn)를 참고하세요!