การปรับปรุงประสิทธิภาพการทำงานแบบวนซ้ำใน PHP
แม้แต่การทำงานเบาๆ ที่ทำซ้ำหลายครั้ง ในลูป ก็สามารถใช้ทรัพยากร จำนวนมากได้
ลองดูตัวอย่างกัน สมมติว่าเรามีอาร์เรย์ดังนี้:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
?>
ลองหาค่าเฉลี่ยของสมาชิก อาร์เรย์นี้กัน สำหรับการนี้ ต้องหาผลรวม ของสมาชิกแล้วหารด้วยจำนวน สมมติว่าผู้เขียนโค้ดบางคนได้แก้ปัญหานี้ ด้วยวิธีต่อไปนี้:
<?php
$sum = 0;
foreach ($arr as $elem) {
$sum += $elem / count($arr);
}
echo $sum;
?>
ลองพิจารณาปัญหาของวิธีแก้ไขนี้ ในทางเทคนิคโค้ดทำงานถูกต้องและให้ คำตอบที่ถูกต้อง เรื่องนี้คือในทางคณิตศาสตร์ถูกต้อง ทั้งหารผลรวมทั้งหมดด้วยจำนวน และหารแต่ละพจน์ด้วยจำนวน
อย่างไรก็ตาม มีปัญหาอื่นเกิดขึ้น เรื่องนี้ คือเราจะทำการหาร หลายครั้งเท่ากับจำนวนสมาชิกใน อาร์เรย์ของเรา และปรากฏว่าเราทำ การทำงานที่ไม่จำเป็นจำนวนมาก เพราะการหารสามารถทำได้ ในตอนท้าย - เพียงครั้งเดียว โดยหาร ผลรวมทั้งหมดที่หาได้
ลองปรับปรุงประสิทธิภาพโค้ดของเรา:
<?php
$sum = 0;
foreach ($arr as $elem) {
$sum += $elem;
}
echo $sum / count($arr);
?>
ปรับปรุงประสิทธิภาพโค้ดด้านล่าง:
<?php
for ($i = 1; $i <= 31; $i++) {
if ($i === date('d')) {
echo "<b>$i</b><br>";
}
if ($i !== date('d')) {
echo "$i<br>";
}
}
?>