다음을 통해 공유


.NET 성능 팁

성능이라는 용어는 일반적으로 프로그램의 실행 속도를 나타냅니다. 소스 코드의 특정 기본 규칙을 따라 실행 속도를 높일 수 있습니다. 일부 프로그램에서는 코드를 면밀히 검사하고 프로파일러를 사용하여 가능한 한 빨리 실행되고 있는지 확인해야 합니다. 다른 프로그램에서는 코드가 작성되는 동안 허용 가능한 속도로 실행되므로 이러한 최적화를 수행할 필요가 없습니다. 이 문서에서는 성능이 저하되는 몇 가지 일반적인 영역과 이를 개선하기 위한 팁과 추가 성능 항목에 대한 링크를 나열합니다. 성능 계획 및 측정에 대한 자세한 내용은 성능을 참조하세요.

박싱 및 언박싱

많은 횟수로 박싱해야 하는 상황, 예를 들어 제네릭이 아닌 컬렉션 클래스의 경우 값 형식을 사용하지 않는 것이 가장 좋습니다. 값 형식의 박싱을 방지하기 위해 System.Collections.Generic.List<T>과 같은 제네릭 컬렉션을 사용할 수 있습니다. Boxing과 unboxing은 계산상 비용이 많이 드는 과정입니다. 값 형식이 박싱되면 완전히 새로운 객체를 만들어야 합니다. 이는 간단한 참조 할당보다 최대 20배 더 오래 걸릴 수 있습니다. 언박싱할 때 캐스팅 프로세스는 작업에 비해 4배 더 오래 소요될 수 있습니다. 자세한 내용은 Boxing 및 Unboxing을 참조하세요.

현악기들

예를 들어 타이트 루프에서 많은 수의 문자열 변수를 연결할 때는 C# System.Text.StringBuilder 또는 Visual Basic 연결 연산자 대신 사용합니다. 자세한 내용은 Visual Basic에서 여러 문자열연결 연산자를 연결 하는 방법을 참조 하세요.

파이널라이저

빈 종료자는 사용할 수 없습니다. 클래스에 종료자가 포함되어 있으면 Finalize 큐에 항목이 만들어집니다. 파이널라이저가 호출되면 큐 처리를 위해 가비지 수집기가 호출됩니다. 종료자가 비어 있으면, 이것은 단순히 성능 저하로 이어집니다. 자세한 내용은 종료자객체 수명 주기: 객체의 생성과 소멸 방식을 참조하세요.

기타 리소스

참고하십시오