다음을 통해 공유


ProfileOptimization 클래스

정의

이전 컴파일 중에 만든 프로필을 기반으로 실행될 가능성이 있는 메서드의 백그라운드 컴파일을 수행하여 JIT(Just-In-Time) 컴파일러가 필요한 애플리케이션에서 애플리케이션 도메인의 시작 성능을 향상시킵니다.

public ref class ProfileOptimization abstract sealed
public static class ProfileOptimization
type ProfileOptimization = class
Public Class ProfileOptimization
상속
ProfileOptimization

설명

메모

  • 프로필 최적화에는 다중 코어 컴퓨터가 필요합니다. 메서드는 다른 컴퓨터에서 무시됩니다.
  • 이 API는 시작 시간을 줄입니다. 이러한 개선 사항은 관찰된 실행 패턴에 따라 런타임 최적화를 개선하는 동적 PGO(동적 프로필 기반 최적화)에 보완됩니다.

애플리케이션 도메인에서 프로필 최적화를 시작할 때마다 이전 사용 중에 만든 프로필을 읽습니다. 프로필의 정보는 시작 중에 실행될 가능성이 가장 큰 메서드를 식별하여 백그라운드 컴파일을 안내하는 데 사용됩니다. 다중 코어 컴퓨터에서는 주 애플리케이션 스레드가 JIT 컴파일러를 호출할 필요가 없도록 필요한 시간까지 메서드가 이미 컴파일될 가능성이 높아집니다.

프로필 파일은 사용할 때마다 덮어쓰여지므로 시작 중에 사용되는 메서드에 대한 최신 정보가 항상 포함됩니다.

최적화 프로필은 애플리케이션 도메인 시작으로 제한되지 않습니다. JIT 컴파일러를 많이 사용해야 하는 모든 작업에 사용할 수 있습니다. 이러한 각 활동에 고유한 프로필이 있도록 애플리케이션 도메인에 대해 여러 프로필을 유지할 수 있습니다.

애플리케이션 도메인에서 최적화 프로필을 사용하려면 메서드를 호출 SetProfileRoot 하고 프로필이 저장되는 폴더를 지정해야 합니다. 폴더가 이미 있어야 합니다. 프로필 사용을 시작하려면 메서드를 StartProfile 호출하고 프로필의 파일 이름을 지정합니다. 파일이 이전에 기록되지 않은 경우 처음 사용할 때 만들어집니다. 프로필을 처음 만들 때 성능 혜택은 없습니다.

프로필 최적화는 메서드가 실행되는 순서를 변경하지 않습니다. 메서드는 백그라운드 스레드에서 실행되지 않습니다. 메서드가 컴파일되었지만 호출되지 않으면 단순히 사용되지 않습니다. 프로필 파일이 손상되었거나 지정된 폴더에 쓸 수 없는 경우(예: 폴더가 존재하지 않기 때문에) 최적화 프로파일링 없이 프로그램 실행이 계속됩니다.

메서드

Name Description
SetProfileRoot(String)

현재 애플리케이션 도메인에 대한 최적화 프로파일링을 사용하도록 설정하고 최적화 프로필 파일이 저장되는 폴더를 설정합니다. 단일 코어 컴퓨터에서 메서드는 무시됩니다.

StartProfile(String)

백그라운드 스레드에서 이전에 지정된 프로필 파일에 기록된 메서드의 JIT(Just-In-Time) 컴파일을 시작합니다. 나중에 지정된 프로필 파일을 덮어쓰는 현재 메서드 사용을 기록하는 프로세스를 시작합니다.

적용 대상