Python이 빠른 프로그래밍 언어가 아니라는 것은 비밀이 아닙니다. 많은 개발자들이 이 언어의 성능 향상을 기대하고 있습니다. 이러한 상황은 곧 바뀔 수도 있고, 적어도 올바른 방향으로 나아갈 수도 있습니다. 이는 Python 창립자가 복귀한 후 내린 결정의 결과 중 하나입니다. 일하다.
5월 7일 Python 팀은 최신 Python 버전인 Python 3.11을 출시했습니다. 현재 출시된 것은 개발자가 테스트나 실험에 사용할 수 있는 베타 버전(Beta1)입니다.
개발팀에서 정한 규정에 따르면 정식 버전은 2022년 10월 출시될 예정입니다.
한 호기심 많은 네티즌이 자신의 가상 머신에서 Python 3.10과 3.11을 별도의 Docker 컨테이너에 설치하고 일련의 벤치마크 테스트에서 비교를 살펴보았습니다.
이 작업을 완료하는 데 pyperformance 패키지가 사용됩니다. 이 패키지는 개발자가 어려운 벤치마크 테스트 작업을 완료하는 데 도움이 됩니다.
평균값을 기준으로 요약된 데이터는 Python 3.11이 Python 3.10보다 14% 빠릅니다. 새로운 3.11 버전은 일부 벤치마크에서는 약간 느리지만 대부분의 벤치마크에서는 64% 더 빠릅니다.
다음은 10코어 CPU를 탑재한 M1 Pro MacBook Pro 16에서 실행된 벤치마크 테스트입니다. 각 Python 버전은 5개의 논리적 CPU 코어를 사용하는 Docker에 설치됩니다.
다음은 다양한 패키지의 실행 데이터입니다.
현재 Python 3.11의 공식 버전은 공식적으로 출시되지 않았으며 현재 완전히 안정적인 버전을 기다려야 합니다. 아마도 정식 버전이 출시된 이후에는 둘 사이의 격차가 더욱 커질 것입니다.
작성자: Luo Qiqi, 제작: | OSC 오픈 소스 커뮤니티(ID: oschina2013)
은퇴하고 Microsoft의 Faster CPython 팀에 다시 합류한 후 Python의 아버지인 Guido van Rossum이 다음과 같이 연설했습니다. 2021 Python Language Summit 그는 팀이 Python 3.11 버전에서 최소 1배의 속도를 달성할 것이라고 말하면서 거친 말을 내놓았습니다.
올해 Python Language Summit에서 Guido와 팀 파트너인 Mark Shannon은 최신 진행 상황을 보고했습니다. 버전 3.10과 비교하여 CPython 3.11의 속도 향상은 10~60%이며 구체적인 속도는 코드 크기에 따라 다릅니다. 근무 분야 및 기타 조건. CPython 3.11은 pyperformance 벤치마크 제품군을 사용하여 측정한 결과 Ubuntu Linux에서 GCC로 컴파일할 때 CPython 3.10보다 평균 25% 빠릅니다.
CPython 3.11의 성능 향상은 주로 더 빠른 시작과 더 빠른 런타임에 중점을 둡니다. 적응형 인터프리터의 운영 아이디어는 둘 다 Hot입니다. 코드이지만 적응형 인터프리터는 바이트코드 외부에서 작동할 수 없습니다. PEP 659 제안에 대한 작업은 거의 완료되었지만 for 루프 및 바이너리 작업의 동적 최적화는 아직 완료되어야 합니다.
Python 3.11은 속도가 25% 향상되었지만 여전히 개선이 필요한 부분이 있습니다. 예를 들어 Python 3.11의 메모리 소비는 기본적으로 3.10과 동일합니다.
또한 C 확장 문제에 주목할 필요가 있습니다. CPython의 C와의 간단한 인터페이스가 주요 장점이지만 C 확장과의 비호환성은 주요 단점입니다. CPython 3.11에서 Faster CPython 팀이 수행한 최적화 작업에서는 확장 모듈 문제를 대부분 무시했습니다. 이와 관련하여 팀 리더인 Shannon은 팀이 Python 코드를 줄이기 위해 하위 수준 함수 API를 가상 머신에 노출할 가능성을 모색하고 있다고 말했습니다. 그리고 C코드를 최대한 많이 사용하세요.
많은 기대를 모으고 있는 JIT 컴파일러에 대해 Shannon은 JIT를 구현하는 첫 번째 단계는 추적 인터프리터를 구현하는 것이지만 아직 주의가 필요한 프로젝트가 너무 많고 JIT 컴파일러의 도입에는 아직 방법이 있다고 말했습니다. , "빠르면 3시 13분까지는 도착하지 않을 수도 있습니다." (그런데 Shannon은 CPython이 실제로 JIT를 도입해야 하는지에 대해 항상 회의적이었습니다.)
흥미롭게도 어제 우리는 개발자 Sam Gross의 새로운 제안에 대해 보고했습니다. CPython 인터프리터 장치 잠금의 GIL 전역 해석을 완전히 제거하는 것입니다. 이 제안과 Faster CPython 팀의 작업은 완전히 다른 방식으로 멀티스레드 Python 코드의 속도를 높이지만 두 가지 모두 충돌을 일으킬 수 있습니다. 결국 Faster CPython이 구현한 최적화의 상당 부분은 전제에 기반을 두고 있습니다. GIL이 여전히 존재한다는 것입니다.
참고: 작년 핵심 개발자 스프린트 회의에서 핵심 개발자들은 샘 그로스(Sam Gross)와 함께 노길 프로젝트에 대해 심도 있는 토론을 진행했으며 모두가 더 우려했던 많은 질문에 답했습니다. 구체적인 회의록을 보려면 Python 공식 세미나: GIL을 완전히 제거하는 것이 정말 가능합니까? 기사를 참조하세요.
위 내용은 Python 3.11의 성능이 거의 64% 향상되었습니다!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!