프로그램 최적화 란 무엇입니까?
프로그램 최적화는 프로그램이 더 빠르게 실행하거나, 리소스를 적게 소비하거나, 일반적으로 더 높은 수준의 효율성으로 기능하는 방식으로 컴퓨터 프로그램을 수정하는 프로세스입니다. 최적화 작업은 일부 프로그래밍 언어 컴파일러, 의도적으로 최적화 프로그램을 사용하여 또는 소스 코드를 통해 구체적인 개선을 시도하는 프로그래머에 의해 자동으로 수행 될 수 있습니다. 일반적으로 프로그램 최적화는 특정 목적을 염두에두고 수행됩니다. 프로그램의 다른 부분의 최적화 된 상태를 줄이지 않는 프로그램에 대한 일반적인 최적화는 거의 없기 때문에 프로그램은 일반적으로 속도 나 리소스 사용에 대해 최적화 될 수 있지만 일반적으로 둘 다가 아닙니다. 일부 유형의 최적화에서 발생할 수있는 한 가지 합병증은 많은 고급 프로그래밍 언어가 기본 코드와 최적화가 될 수있는 컴퓨터 언어 사이에 큰 수준의 추상화를 제공한다는 것입니다.모든 상황에서 모든 플랫폼에서 구현하기가 어렵거나 불가능합니다. 특히 JIT (Just-In-Time) 컴파일을 사용하는 해석 된 언어.
프로그램 최적화의 중요한 개념은 최적화에 일반적으로 어떤 종류의 가격이 제공된다는 아이디어입니다. 이것의 한 예는 코드 조각이 더 빨리 실행되도록 최적화되면 코드 가독성, 메모리 사용량, 프로그램 유연성 또는 기타 여러 비용의 가격으로 속도 증가가 발생할 수 있다는 것입니다. 이는 프로그램 최적화가 다른 측면의 효율성을 기꺼이 희생하면서 더 나은 방식으로 운영하려는 의도로 프로그램 최적화가 목표 프로세스가되어야한다는 것을 의미합니다.
.다양한 유형의 프로그램 최적화는 프로그램 개발의 다른 단계에서 수행 될 수 있습니다. 설계 중에 프로그램이 효과적으로 실행되는 것처럼 보이도록 광범위한 최적화를 수행 할 수 있습니다. 일할 때실제 소스 코드를 사용하여 최적화에는 외부 명령, 반복적 인 통화 또는 제대로 작성된 기능이 없는지 확인할 수 있습니다. 컴파일시, 많은 최적화가 컴파일러에 의해 자동으로 수행되며 프로그래머가 다른 컴파일러 스위치 또는 지침을 사용하여 안내 할 수 있습니다.
컴파일러 또는 헌신 최적화 프로그램에서 발생할 수있는
자동 최적화는 종종 인간 프로그래머에게는 실용적 이기에는 너무 복잡한 트릭을 포함 할 수 있습니다. 여기에는 프로그램에서 지침을 이동하는 것이 포함되므로 원래 작성된 순서에서 실행되지만 프로세서에보다 효율적인 방식으로 실행됩니다. 또한 메모리 블록과 같은 의도적으로 이동하는 자원을 더 빨리 액세스 할 수 있습니다. 대부분의 프로그램 최적화는 컴파일러 레벨에서 자동으로 발생합니다.
반복적이거나 공격적인 프로그램 최적화에 대한 한 가지 합병증은 프로그램이보다 효율적으로 실행되도록 수정되면 일반적으로 더 DI가된다는 것입니다.기능 추가 또는 버그 수정과 같은 다른 목적을 위해 수정해야합니다. 이는 최적화가 모든 최적화를 취소 할 필요없이 쉽게 변경되거나 새 코드로 변경되지 않는 설정 프로그램 동작을 잠그기 시작할 때 발생할 수 있습니다. 더 큰 문제는 많은 경우에 최적화 된 프로그램이 인간이 읽을 수 없다는 것입니다. 간결한 명령과 고전적인 제어 구조 대신 트릭과 바로 가기가 사용되기 때문입니다. 이러한 이유로, 과감한 코드 수정으로 인해 프로그램이 약간 더 효율적으로 작동하게 할 수 있지만
.