Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Berkongsi Tatasusunan Besar, Baca Sahaja dan Objek Python dalam Multiprocessing tanpa Overhed Memori?
Soalan:
Dalam multiprocessing, bagaimana anda boleh berkongsi yang besar, baca- hanya tatasusunan atau sebarang objek Python sewenang-wenangnya merentas berbilang proses tanpa menimbulkan overhed memori?
Jawapan:
Dalam sistem pengendalian yang menggunakan semantik copy-on-write fork(), struktur data yang tidak diubah kekal tersedia untuk semua proses kanak-kanak tanpa penggunaan memori tambahan. Hanya pastikan objek kongsi kekal tidak diubah suai.
Untuk Tatasusunan:
Pendekatan Cekap:
Objek Kongsi Boleh Tulis:
pemprosesan berbilang menyediakan dua kaedah:
Objek Python Arbitrari:
Kebimbangan Pengoptimuman:
Ofhed diperhatikan dalam coretan kod yang disediakan bukan disebabkan oleh penyalinan memori. Sebaliknya, ia berpunca daripada pensirilan/penyahserialisasian argumen fungsi (tatasusunan arr), yang dikenakan penalti prestasi apabila menggunakan proksi Pengurus.
Atas ialah kandungan terperinci Bagaimana untuk Berkongsi Tatasusunan Besar, Baca Sahaja dan Objek Python dalam Multiprocessing tanpa Overhed Memori?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!