Python 3.6: 사전이 삽입 순서를 유지합니다
Python 3.6부터 CPython 구현의 사전은 이전 버전과 크게 다른 삽입 순서를 나타냅니다. . 이 기능은 이제 Python 3.7에서 보장된 언어 기능입니다.
향상된 메모리 사용량 및 성능
새로운 사전 구현은 이전 버전에 비해 메모리 사용량을 20-25% 크게 줄입니다. 파이썬 3.5. 이러한 개선은 구현 시 별도의 배열 사용에서 비롯됩니다:
이전에는 PyDictKeyEntry 유형의 희소 배열을 할당해야 했고, 이로 인해 성능 고려 사항으로 인해 공간이 낭비되었습니다. 새로운 접근 방식은 필요한 항목만 할당하고 메모리를 덜 소비하는 intX_t 유형의 희소 배열을 사용합니다.
사용된 데이터 구조
원래 사전은 [ keyhash, key, value] '-'로 표시된 빈 항목이 있는 희소 배열입니다. 새로운 접근 방식은 데이터를 다음과 같이 구성합니다.
항목: [[-9092791511155847987, 'timmy', 'red'],
[-8522787127447073495, 'barry', 'green'], [-6480567542315338377, 'guido', 'blue']]
이 수정된 구조는 메모리 오버헤드를 크게 줄입니다.
삽입의 이점 정렬
새로운 사전 구현은 주로 메모리 최적화에 중점을 두고 있지만 삽입 순서 지정 기능은 다음과 같은 편리한 응용 프로그램을 제공합니다.
다양한 Python 구현이나 향후 언어 버전에서는 삽입 순서가 보장되지 않는다는 점에 유의하는 것이 중요합니다. 그러나 Python 3.7 이상에서는 신뢰할 수 있는 기능이 보장됩니다.
위 내용은 Python 3.6 사전 구현은 어떻게 메모리 사용량을 개선하고 삽입 순서를 유지합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!