다음을 통해 공유


.NET 성능 팁

성능이라는 용어는 일반적으로 프로그램의 실행 속도를 나타냅니다. 경우에 따라 소스 코드에서 특정 기본 규칙을 따라 실행 속도를 높일 수 있습니다. 일부 프로그램에서는 코드를 자세히 검사하고 프로파일러를 사용하여 최대한 빠르게 실행 중인지 확인하는 작업을 해야 합니다. 다른 프로그램에서는 코드가 작성된 대로 만족스럽게 실행되므로 이러한 최적화를 수행하지 않아도 됩니다. 이 문서에서는 성능이 떨어질 수 있는 몇 가지 일반적인 영역과 성능 향상 팁 및 추가 성능 항목에 대한 링크를 나열합니다. 성능 계획 및 측정에 대한 자세한 내용은 성능을 참조하세요.

boxing 및 unboxing

예를 들어 System.Collections.ArrayList와 같이 제네릭이 아닌 컬렉션 클래스에서 상당히 많은 횟수로 boxing되어야 하는 경우 값 형식을 사용하지 않는 것이 좋습니다. System.Collections.Generic.List<T>와 같은 제네릭 컬렉션을 사용하는 경우 값 형식을 boxing하지 않을 수 있습니다. Boxing 및 unboxing은 계산을 많이 해야 하는 프로세스입니다. 값 형식이 boxing되면 완전히 새로운 개체가 생성되어야 합니다. 이 작업은 단순 참조 할당보다 20배나 오래 걸립니다. unboxing 시 캐스팅 프로세스는 할당의 4배에 달하는 시간이 소요될 수 있습니다. 자세한 내용은 boxing 및 unboxing을 참조하세요.

문자열

예를 들어 연속 루프에서 다수의 문자열 변수를 연결하는 경우 C# + 연산자 또는 Visual Basic 연결 연산자가 아니라 System.Text.StringBuilder를 대신 사용합니다. 자세한 내용은 방법: 여러 문자열 연결Visual Basic의 연결 연산자를 참조하세요.

종료자

빈 종료자는 사용할 수 없습니다. 클래스에 종료자가 포함되어 있으면 Finalize 큐에서 항목이 생성됩니다. 종료자를 호출하면 가비지 수집기가 호출되어 큐를 처리합니다. 종료자가 비어 있으면 성능이 저하됩니다. 자세한 내용은 종료자개체 수명: 개체가 만들어지고 소멸되는 방법을 참조하세요.

기타 리소스

참고 항목