Peruntukan Memori Python untuk Rentetan Serupa
Dalam Python, rentetan dengan aksara yang sama mungkin berkongsi memori (a == b, id(a) == id(b )) atau boleh disimpan secara berasingan (id(a) != id(b)).
Peruntukan Memori Rentetan
Peruntukan memori rentetan Python melibatkan dua jenis rentetan:
-
Ustrings: Rentetan unik yang disimpan dalam Ucache untuk menjimatkan memori dan mengoptimumkan perbandingan.
-
Ostrings: Rentetan lain, yang mungkin mempunyai berbilang kejadian dalam ingatan.
Python memperuntukkan rentetan secara dinamik, bermakna ia mencipta salinan baharu apabila perlu. Walau bagaimanapun, ia juga cuba menggunakan semula rentetan sedia ada dalam senario tertentu.
Senario untuk Peruntukan Memori Baharu
Python biasanya memperuntukkan memori baharu untuk rentetan yang sama dalam kes berikut:
-
Rentetan daripada fail atau sumber luaran: Apabila membaca data daripada fail, setiap tika rentetan dianggap sebagai objek yang berasingan.
-
Menetapkan objek baharu kepada pembolehubah rentetan : Walaupun objek yang diperuntukkan mempunyai nilai yang sama dengan rentetan sedia ada dalam ingatan, peruntukan memori baharu dibuat.
Senario untuk Menggunakan Semula Memori
Python mungkin menggunakan semula sedia ada rentetan dalam kes berikut:
-
Rentetan rentetan yang sama dalam satu fungsi: Apabila rentetan rentetan yang sama muncul berbilang kali dalam fungsi, penterjemah biasanya akan menggunakan semula objek sedia ada.
-
Secara dalaman oleh intern(rentetan): Memanggil intern(rentetan) memaksa rentetan disimpan dalam Ucache, memastikan hanya satu salinan wujud.
Mengoptimumkan Peruntukan Memori Rentetan
Untuk mengoptimumkan peruntukan memori rentetan dalam Python, pertimbangkan teknik berikut:
-
Gunakan literal rentetan: Isytiharkan rentetan sebagai literal apabila mungkin untuk menggalakkan guna semula.
-
Gunakan intern(rentetan): Untuk rentetan yang kerap digunakan, gunakan pelatih untuk menguatkuasakan storan Ucache.
-
Laksanakan strategi kumpulan pemalar tersuai: Untuk objek tidak berubah yang besar dan kerap diduakan, cipta mekanisme anda sendiri untuk menggunakan semula salinan.
Atas ialah kandungan terperinci Faktor Mana Yang Mempengaruhi Peruntukan Memori Python untuk Rentetan Yang Sama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!