그러나 파이썬 스크립트가 동등한 C ++ 프로그램만큼 빠르지 못하게하는 기술적 제한이나 언어 기능이 있습니까?
아니요. C ++을 빠르게 실행하는 데 따르는 돈과 리소스에 대한 문제 일뿐 아니라 Python을 빠르게 실행하는 데 드는 돈과 리소스는 문제입니다.
예를 들어, Self VM이 나왔을 때 가장 빠른 동적 OO 언어 일뿐 아니라 가장 빠른 OO 언어 기간이었습니다. 에도 불구하고 믿을 수 없을만큼 (예를 들어, 더 많은 그래서 파이썬, 루비, PHP 또는 자바 스크립트보다) 동적 언어를 더 빨리 사용할 수 있었던 C의 가장 ++ 구현에 비해이었다.
그러나 Sun은 TV 셋톱 박스의 애니메이션 메뉴를위한 작은 스크립팅 언어에 초점을 맞추기 위해 Self 프로젝트 (대형 시스템 개발을위한 성숙한 범용 OO 언어)를 취소했습니다 (들어 보셨을 것입니다, Java라고 함). 더 많은 자금. 동시에, Intel, IBM, Microsoft, Sun, Metrowerks, HP 등. C ++를 빠르게 만들기 위해 엄청난 양의 돈과 자원을 소비했습니다. CPU 제조업체는 C ++를 빠르게하기 위해 칩에 기능을 추가했습니다. C ++를 빠르게 만들기 위해 운영 체제를 작성하거나 수정했습니다. 따라서 C ++은 빠릅니다.
나는 파이썬에 굉장히 친숙하지 않다. 나는 더 많은 루비 사람이다. 그래서 나는 루비로부터 예제를 제공 할 것이다 . 루비니 우스 루비 구현 Hash
에서 클래스 ( dict
파이썬 에서 기능과 중요성에 상응하는 )는 100 % 순수 루비로 작성되었다; 그러나 Hash
손에 최적화 된 C로 작성된 YARV 의 클래스 보다 우월하고 때로는 경쟁 우위 를 차지합니다. 상용 Lisp 또는 Smalltalk 시스템 (또는 앞서 언급 한 Self VM)과 비교할 때 Rubinius의 컴파일러는 그다지 영리하지 않습니다. .
파이썬에는 느리게 만드는 것은 없습니다. 오늘날의 프로세서와 운영 체제에는 Python을 손상시키는 기능이 있습니다 (예 : 가상 메모리는 가비지 수집 성능이 끔찍한 것으로 알려져 있습니다). C ++에는 도움이되지만 Python에는 도움이되지 않는 기능이 있습니다 (현대 CPU는 너무 비싸기 때문에 캐시 미스를 피하려고 시도합니다. 불행히도 캐시 미스를 피하는 것은 OO와 다형성이있을 때 어렵습니다. 오히려 캐시 비용을 줄여야합니다) Java를 위해 설계된 Azul Vega CPU가이를 수행합니다.)
C ++에서와 같이 Python을 빠르게 만드는 데 많은 비용, 연구 및 리소스를 소비하고 C ++ 에서처럼 Python 프로그램을 빠르게 실행할 수있는 운영 체제를 만드는 데 많은 비용, 연구 및 리소스를 소비하고 C ++에서와 같이 Python 프로그램을 빠르게 실행하는 CPU를 만드는 데 많은 돈, 연구 및 리소스가 있다면 Python이 C ++과 비슷한 성능에 도달 할 수 있다는 것은 의심 할 여지가 없습니다.
우리는 ECMAScript를 사용하여 한 명의 플레이어 만 성능에 대해 진지하게 생각할 때 발생할 수있는 일을 보았습니다. 1 년 안에 모든 주요 공급 업체의 기본 성능이 기본적으로 10 배 향상되었습니다.