컴퓨터의 사용중 한정되어 있는 시스템을 최대로 사용할 수 있도록 명령이나 데이터의 구성 등을 정해진 기준내에서 최적으로 하여 프로그램의 크기를 작게 하고 실행속도를 빠르게 하는 등을 최적화라 한다. 최적화는 크게 프로그램의 내부적인 최적화와 프로그램의 외부적인 최적화로 나눌 수 있다. 프로그램의 내부적인 최적화는 컴파일 과정에서 발생하는 최적화와 같은 것으로 프로그램을 컴파일할 때 컴파일러에서 생성된 목적 코드(기계어로 번역된 명령어) 를 분석하여 불필요하게 번역된 부분은 빼고 공통 수식은 공유하며 사용하지 않는 코드나 데이터는 제거하는 방법 등으로 목적 프로그램의 크기를 줄여 실행 속도를 빨리하는 작업이다. 프로그램의 외부적인 최적화는 보조 메모리 등에 저장되어 있는 데이터나 프로그램이 삭제되거나 새로이 입력되는 과정에서 조그만 크기로 분리되어 다른 프로그램을 저장할 수 없을 정도로 작아진 메모리 영역을 재정리, 합병하여 적당한 크기로 구성하는 작업을 기리킨다.