Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Pelaksanaan Kamus Python 3.6 Meningkatkan Penggunaan Memori dan Mengekalkan Tertib Sisipan?

Bagaimanakah Pelaksanaan Kamus Python 3.6 Meningkatkan Penggunaan Memori dan Mengekalkan Tertib Sisipan?

Mary-Kate Olsen
Lepaskan: 2025-01-02 18:04:39
asal
678 orang telah melayarinya

How Does Python 3.6  Dictionary Implementation Improve Memory Usage and Preserve Insertion Order?

Python 3.6 : Kamus Mengekalkan Susunan Sisipan

Sehingga Python 3.6, kamus dalam pelaksanaan CPython mempamerkan susunan sisipan, penyimpangan yang ketara daripada versi sebelumnya . Ciri ini kini merupakan ciri bahasa terjamin dalam Python 3.7.

Penggunaan dan Prestasi Memori yang Dipertingkat

Pelaksanaan kamus baharu dengan ketara mengurangkan penggunaan memori sebanyak 20-25% berbanding dengan Python 3.5. Penambahbaikan ini berpunca daripada penggunaan pelaksanaan tatasusunan berasingan:

  • dk_entry: Menyimpan entri (PyDictKeyEntry) dalam susunan sisipan.
  • dk_indices: Menyimpan indeks untuk entri dalam dk_entry, bertindak sebagai a jadual hash.

Sebelum ini, tatasusunan jarang jenis PyDictKeyEntry terpaksa diperuntukkan, mengakibatkan ruang terbuang disebabkan pertimbangan prestasi. Pendekatan baharu hanya memperuntukkan entri yang diperlukan dan menggunakan tatasusunan jarang jenis intX_t, yang menggunakan kurang memori.

Struktur Data Digunakan

Pada asalnya, kamus disimpan sebagai [ keyhash, kunci, nilai] dalam tatasusunan jarang dengan entri kosong dilambangkan dengan '--'. Pendekatan baharu menyusun data sebagai:

  • indeks: [Tiada, 1, Tiada, Tiada, Tiada, 0, Tiada, 2]
  • penyertaan: [[-9092791511155847987, 'timmy', 'red'],

            [-8522787127447073495, 'barry', 'green'],
            [-6480567542315338377, 'guido', 'blue']]
    
    Salin selepas log masuk

Struktur yang disemak ini mengurangkan overhed memori dengan ketara.

Faedah Susunan Sisipan

Sementara pelaksanaan kamus baharu tertumpu terutamanya pada pengoptimuman ingatan, ciri susunan sisipan mempunyai aplikasi yang mudah:

  • Memelihara susunan objek di mana ia ditambahkan pada kamus.
  • Menyesuaikan paparan atau susunan lelaran kandungan kamus.

Adalah penting untuk ambil perhatian bahawa pesanan sisipan tidak dijamin merentas pelaksanaan Python yang berbeza atau versi bahasa masa hadapan. Walau bagaimanapun, dalam Python 3.7 dan seterusnya, ia adalah ciri terjamin yang boleh anda harapkan.

Atas ialah kandungan terperinci Bagaimanakah Pelaksanaan Kamus Python 3.6 Meningkatkan Penggunaan Memori dan Mengekalkan Tertib Sisipan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan