Teknologi pengkomputeran selari boleh meningkatkan prestasi program dengan memperuntukkan tugas kepada berbilang teras pemproses selari Dalam PHP, teknologi berbilang proses atau berbilang benang boleh digunakan untuk mencapai pemprosesan selari. Untuk algoritma selari untuk persilangan dan kesatuan tatasusunan, anda boleh membahagikan tatasusunan kepada ketulan yang lebih kecil, menetapkan setiap ketulan kepada pemproses yang berbeza dan menggunakan fungsi tatasusunan_intersect() dan array_union() untuk mencari persilangan dan kesatuan masing-masing. Dalam kes sebenar, prestasi algoritma selari dan algoritma berjujukan telah dibandingkan, dan keputusan menunjukkan bahawa algoritma selari adalah lebih pantas.
Teroka teknik pengkomputeran selari untuk persilangan tatasusunan dan penyatuan dalam PHP
Pengkomputeran selari boleh meningkatkan prestasi program dengan mengagihkan tugas kepada berbilang teras pemproses selari. Dalam PHP, pemprosesan selari boleh dicapai melalui teknologi seperti pelbagai pemprosesan atau multi-benang. . Sebagai contoh, kita boleh menggunakan kod berikut:
<?php $array1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; $array2 = [3, 4, 5, 6, 7, 8, 9, 11, 12, 13]; $chunks = array_chunk($array1, ceil(count($array1) / 4)); $processes = []; foreach ($chunks as $chunk) { $process = new Process(function() use ($array2, $chunk) { $intersection = array_intersect($array2, $chunk); return $intersection; }); $process->start(); $processes[] = $process; } $result = []; foreach ($processes as $process) { $result = array_merge($result, $process->wait()); } print_r(array_unique($result)); ?>
Algoritma selari untuk mencari penyatuan tatasusunan
Untuk mencari penyatuan tatasusunan, kita boleh menggunakan pendekatan yang serupa, tetapi menggunakan fungsi
untuk menggabungkan hasil:
<?php $array1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; $array2 = [3, 4, 5, 6, 7, 8, 9, 11, 12, 13]; $chunks = array_chunk($array1, ceil(count($array1) / 4)); $processes = []; foreach ($chunks as $chunk) { $process = new Process(function() use ($array2, $chunk) { $union = array_union($array2, $chunk); return $union; }); $process->start(); $processes[] = $process; } $result = []; foreach ($processes as $process) { $result = array_merge($result, $process->wait()); } print_r(array_unique($result)); ?>
array_union()
Untuk membandingkan prestasi algoritma selari dan berjujukan, kita boleh menggunakan kod berikut:
Menjalankan skrip ini kita dapat melihat bahawa algoritma selari adalah jauh lebih cepat daripada algoritma berjujukan.
Atas ialah kandungan terperinci Terokai teknik pengkomputeran selari untuk persilangan tatasusunan dan kesatuan dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!