.NET Framework 사용 성능 규칙.NET Framework Usage Performance Rules

.NET Framework 사용 범주의 성능 규칙은 최적화할 수 있는 특정 방법을 확인하고 성능 문제가 있는지 조사할 수 있는 가비지 수집 및 잠금 경합과 같은 더 일반적인 사용 패턴도 확인합니다.Performance rules in the.NET Framework Usage category identify specific methods that can be optimized and also identify more general usage patterns, such as garbage collection and lock contention, that can be investigated for performance issues.

DA0001: 연결에 StringBuilder를 사용하십시오.DA0001: Use StringBuilder for concatenations System.String.Concat(String, String) 호출이 프로파일링 데이터의 상당한 부분을 차지합니다.Calls to System.String.Concat(String, String) are a significant proportion of the profiling data. 여러 세그먼트에서 문자열을 구성할 때 StringBuilder 클래스를 사용해 보세요.Consider using the StringBuilder class to construct strings from multiple segments.
DA0005: GC2 컬렉션이 많습니다.DA0005: Frequent GC2 collections 비교적 많은 .NET 메모리 개체가 2세대 가비지 수집에서 회수됩니다.A relatively high number of .NET memory objects are being reclaimed in generation 2 garbage collection. 너무 많은 단기 유지 개체가 1세대 수집에서 생존하면 메모리 관리 비용이 쉽게 과도해질 수 있습니다.If too many short-lived objects survive generation 1 collection, the cost of memory management can easily become excessive.
DA0006: 값 형식에 대해 Equals()를 재정의하십시오.DA0006: Override Equals() for value types Equals 메서드 또는 공개 값 형식의 같음 연산자에 대한 호출이 프로파일링 데이터의 상당한 부분을 차지합니다.Calls to the Equals method or the equality operators of a public value type are a significant proportion of the profiling data. 더 효율적인 메서드를 구현해 보세요.Consider implementing a more efficient method.
DA0007: 제어 흐름에는 예외를 사용하지 마십시오.DA0007: Avoid using exceptions for control flow 프로파일링 데이터에서 .NET Framework 예외 처리기가 호출되는 비율이 높았습니다.A high rate of .NET Framework exception handlers were called in the profiling data. throw되는 예외 수를 줄일 때 다른 제어 흐름 논리를 사용해 보세요.Consider using other control flow logic to reduce the number of exceptions that are thrown.
DA0010: GetHashCode의 부담이 큽니다.DA0010: Expensive GetHashCode 해당 형식의 GetHashCode 메서드 호출이 프로파일링 데이터의 상당한 부분을 차지하거나 GetHashCode 메서드가 메모리를 할당합니다.Calls to the GetHashCode method of the type are a significant proportion of the profiling data or the GetHashCode method allocates memory. 메서드의 복잡성을 줄이세요.Reduce the complexity of the method.
DA0011: CompareTo의 부담이 큽니다.DA0011: Expensive CompareTo 해당 형식의 CompareTo 메서드가 부담이 크거나 메서드가 메모리를 할당합니다.The CompareTo method of the type is expensive or the method allocates memory. CompareTo 메서드의 복잡성을 줄이세요.Reduce the complexity of the CompareTo method.
DA0012: 리플렉션 양이 많습니다.DA0012: Significant amount of Reflection InvokeMemberGetMember와 같은 System.Reflection 메서드 또는 InvokeMember와 같은 Type 메서드에 대한 호출이 프로파일링 데이터의 상당한 부분을 차지합니다.Calls to the System.Reflection methods such as InvokeMember and GetMember or to Type methods such as InvokeMember are a significant proportion of the profiling data. 가능할 경우 이러한 메서드를 종속 어셈블리의 메서드에 대한 초기 바인딩으로 바꿔 보세요.When possible, consider replacing these methods with early binding to the methods of dependent assemblies.
DA0013: String.Split 또는 String.Substring 사용률이 높습니다.DA0013: High usage of String.Split or String.Substring System.String.Split 또는 Substring 메서드에 대한 호출이 프로파일링 데이터의 상당한 부분을 차지합니다.Calls to the System.String.Split or Substring methods are a significant portion of the profiling data. 문자열에서 부분 분자열의 존재 여부를 테스트하는 경우 IndexOf 또는 IndexOfAny를 사용하는 것이 좋습니다.Consider using IndexOf or IndexOfAny if you are testing for the existence of a substring in a string.
DA0018: 32비트 응용 프로그램이 프로세스 관리 메모리 제한에 근접하고 있습니다.DA0018: 32-bit Application running at process managed memory limits 프로파일링 실행 중에 수집된 시스템 데이터는 .NET Framework 메모리 힙이, 관리되는 힙이 32비트 프로세스에 도달할 수 있는 최대 크기에 도달했음을 나타냅니다.System data that is collected during the profiling run indicates the .NET Framework memory heaps approached the maximum size that the managed heaps can reach in a 32-bit process. .NET 메모리 프로파일링 방법을 사용하고 응용 프로그램의 관리되는 리소스 사용을 최적화하여 다시 프로파일링해 보세요.Consider profiling again using the .NET memory profiling method and optimizing the use of managed resources by the application.
DA0021: Gen 1 가비지 컬렉션의 비율이 높습니다.DA0021: High rate of Gen 1 garbage collections 비교적 많은 .NET 메모리 개체가 1세대 가비지 수집에서 회수됩니다.A relatively high number of .NET memory objects are being reclaimed in generation 1 garbage collection. 너무 많은 단기 유지 개체가 0세대 수집에서 생존하면 메모리 관리 비용이 쉽게 과도해질 수 있습니다.If too many short-lived objects survive generation 0 collection, the cost of memory management can easily become excessive.
DA0022: Gen 2 가비지 수집의 비율이 높습니다.DA0022: High rate of Gen 2 garbage collections 많은 .NET 메모리 개체가 2세대 가비지 수집에서 회수됩니다.A high number of .NET memory objects are being reclaimed in generation 2 garbage collection. 너무 많은 단기 유지 개체가 1세대 수집에서 생존하면 메모리 관리 비용이 쉽게 과도해질 수 있습니다.If too many short-lived objects survive generation 1 collection, the cost of memory management can easily become excessive. 잠금 경합 비율이 규칙 DA0005의 임계값 상한을 초과할 경우 이 규칙이 실행됩니다.This rule fires when the rate of lock contentions exceeds the upper threshold value of rule DA0005.
DA0023: GC CPU 시간이 깁니다.DA0023: High GC CPU time 프로파일링 중에 수집되는 시스템 성능 데이터가 가비지 수집에 걸린 시간이 총 응용 프로그램 처리 시간에 비해 크다는 것을 나타냅니다.System performance data that is collected during profiling indicates that the amount of time that is spent in garbage collection is significant compared with the total application processing time.
DA0024: GC CPU 시간이 너무 깁니다.DA0024: Excessive GC CPU Time 프로파일링 중에 수집되는 시스템 성능 데이터가 가비지 수집에 걸린 시간이 총 응용 프로그램 처리 시간에 비해 지나치게 크다는 것을 나타냅니다.System performance data that is collected during profiling indicates that the amount of time that is spent in garbage collection is excessively high compared with the total application processing time. 가비지 수집에 걸린 시간이 규칙 DA0023의 임계값 상한을 초과할 경우 이 규칙이 실행됩니다.This rule fires when the amount of time spent in garbage collection exceeds the upper threshold value of rule DA0023.
DA0038: 높은 비율의 잠금 경합DA0038: High Rate of Lock contentions 프로파일링 데이터와 함께 수집되는 시스템 성능 데이터가 응용 프로그램 실행 중에 발생한 잠금 경합의 비율이 상당히 높다는 것을 나타냅니다.System performance data that is collected with the profiling data indicates that a significantly high rate of lock contentions occurred during application execution. 동시성 프로파일링 방법을 통해 다시 프로파일링하여 경합의 원인을 찾아 보세요.Consider profiling again using the concurrency profiling method to find the cause of the contentions.
DA0039: 잠금 경합의 비율이 매우 높습니다.DA0039: Very High Rate of Lock contentions 프로파일링 데이터와 함께 수집되는 시스템 성능 데이터가 응용 프로그램 실행 중에 발생한 잠금 경합의 비율이 지나치게 높다는 것을 나타냅니다.System performance data that is collected with the profiling data indicates that an excessively high rate of lock contentions occurred during application execution. 동시성 프로파일링 방법을 통해 다시 프로파일링하여 경합의 원인을 찾아 보세요.Consider profiling again using the concurrency profiling method to find the cause of the contentions. 잠금 경합 비율이 규칙 DA0038의 임계값 상한을 초과할 경우 이 규칙이 실행됩니다.This rule fires when the rate of lock contentions exceeds the upper threshold value of rule DA0038.