Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python이 다른 언어보다 느린 이유는 무엇입니까?

<시간/>

Python은 스크립팅 언어이고 C는 프로그래밍 언어입니다. C/C++는 Python에 비해 상대적으로 빠릅니다. Python 스크립트를 실행할 때 인터프리터가 스크립트를 한 줄씩 해석하고 출력을 생성하지만 C에서는 컴파일러가 먼저 컴파일하고 다음과 관련하여 최적화된 출력을 생성하기 때문입니다. 하드웨어. Java 및 .NET과 같은 다른 언어의 경우 JIT 컴파일러가 런타임에 바이트 코드를 네이티브 코드로 컴파일하기 때문에 각각 Java 바이트 코드 및 .NET 바이트 코드가 Python보다 빠르게 실행됩니다. CPython은 Python의 동적 특성으로 인해 JIT 컴파일러를 작성하기 어렵기 때문에 JIT 컴파일러를 가질 수 없습니다.

Python이 다른 언어보다 느린 이유는 무엇입니까?

차이점

아시다시피 Python은 인터프리터 언어이고 C는 컴파일된 언어입니다. 해석된 코드는 실제 기계어 명령을 구현하는 것보다 해석된 명령을 구현하는 데 더 많은 명령이 필요하기 때문에 직접 기계어 코드보다 항상 느립니다. 프로그램에서 실제 작업을 수행하기 전에 Python 명령을 CPU에서 이해해야 합니다. 그래서 파이썬 인터프리터는 변수 저장을 위한 메모리 할당, 프로그램의 공백 및 주석 제거 및 기타 관련 작업과 같은 파이썬 언어의 규칙에 따라 각 명령문을 확인합니다. 이 프로세스는 프로그램의 각 라인에 대해 반복되며 프로그램 실행의 오버헤드를 상당히 증가시킵니다.

Python이 다른 언어보다 느린 이유는 무엇입니까?

C는 빠르다

반면 C는 소스코드를 재검토하는 데 많은 시간을 들이지 않고 빠르게 CPU 명령어로 변환한다. 실행 전에 별도의 컴파일러가 인간 언어 프로그램을 CPU 명령어로 변환하고, 오류를 확인하고, 메모리와 변수를 할당하고, 주석과 공백을 제거하고, 결과 명령어를 최적화합니다. 컴파일된 코드의 결과는 미리 만들어진 다른 코드와 연결되며 결과적으로 많은 준비 없이 할당된 작업을 수행할 준비가 된 견고한 CPU 명령을 얻을 수 있습니다. 내부적으로 Python 코드가 더 느리게 실행되는 이유는 컴파일 시 네이티브 코드로 컴파일되지 않고 런타임 시 코드가 해석되기 때문입니다.