문제

Python의 바이트 코드에 최적화 된 장소가 몇 곳인지 말해 줄 수 있습니까? 요즘 Python의 바이트 코드를 컴파일하려고했지만 Python의 버전 2.5에는 많은 최적화가 있음을 알았습니다.

a,b,c=([],[],[])#build list

버전 2.5 이전의 비 최적화 된 바이트 코드는 다음과 같습니다.

BUILD_LIST_0
BUILD_LIST_0
BUILD_LIST_0
BUILD_LIST_4
UNPACK_LIST_
STORE_NAME 'a'
STORE_NAME 'b'
STORE_NAME 'c'

버전 2.5에서 최적화 된 바이트 코드는 다음과 같습니다.

BUILD_LIST_0
BUILD_LIST_0
BUILD_LIST_0
ROT_THREE
ROT_TWO
STORE_FAST 'a'
STORE_FAST 'b'
STORE_FAST 'c'

이것은 단지 하나의 예일 뿐이지 만 다른 장소는 최적화 될 수 있습니다. 그렇다면, Alybode는 이러한 최적화를 명확히하거나 어떤 방식으로 모든 것을 찾을 수 있는지 알려주는 문서가 있다는 것을 알고 있습니까?

도움이 되었습니까?

해결책

그만큼 Python/Peephole.C 소스 파일은 기본적으로 이러한 모든 최적화가 수행되는 곳입니다. 제가 제공 한 링크는 동적 소스 브라우저에 도달하는 데 어려움이 있기 때문에 현재 버전 (2.6 이상)입니다. 여기, 그러나 다시 작동하면 2.5.2에 존재하는 것과 같은 특정 버전 또는이 정보가 필요한 다른 버전과 같은 특정 버전을 쉽게 볼 수 있습니다.

다른 팁

그 자체로 문서가 있다고 생각하지 않지만 Python 통역사에 대한 C 코드가 있습니다. 여러 가지 버전을 찾을 수 있습니다 여기.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top