PHP-তে ভারী অপারেশনগুলির পুনরাবৃত্তি অপ্টিমাইজেশন
পূর্ববর্তী পাঠে, ফাংশনগুলির পুনরাবৃত্তি কল আসলে খুব কম সময় নেয় এবং আমাদের অপ্টিমাইজেশন খুব বেশি সাশ্রয় করবে না। তবে, পরিস্থিতি আরও খারাপ হবে যদি আমরা একাধিক বার একটি "ভারী" ফাংশন কল করি, যা কিছুটা দীর্ঘ সময় ধরে চলে।
ধরা যাক, উদাহরণস্বরূপ, আমাদের একটি ফাংশন আছে যা সংখ্যার ভাজক খুঁজে বের করে:
php<?php
function getDivisors($num) {
$result = [];
for ($i = 1; $i <= $num; $i++) {
if ($num % $i == 0) {
$result[] = $i;
}
}
return $result;
}
?>
এটা স্পষ্ট যে এই ফাংশনটি যথেষ্ট "ভারী"। তাই নিচের মত কোড লেখা একটি খারাপ ধারণা হবে:
php<?php
$num = 123456;
if (array_sum(getDivisors($num)) >= 10 and array_sum(getDivisors($num)) <= 100) {
} else {
}
?>
অবশ্যই, "ভারী" অপারেশনটি একবার সম্পাদন করা এবং ফলাফলটি একটি ভেরিয়েবলে সংরক্ষণ করা ভাল, তারপর প্রয়োজনীয় স্থানগুলিতে সেই ভেরিয়েবলটি ব্যবহার করুন:
php<?php
$num = 123456;
$sum = array_sum(getDivisors($num));
if ($sum >= 10 and $sum <= 100) {
} else {
}
?>
Задание 1
নিচের দেওয়া কোডটি অপ্টিমাইজ করুন:
php<?php
$num = 1233456789;
if (getSumSquare($num) >= 10 and getSumSquare($num) <= 100) {
echo 'সঠিক';
} else {
echo 'ভুল';
}
function getSumSquare($num) {
$digits = explode('', $num);
$sum = 0;
foreach ($digits as $digit) {
$sum += $digit * $digit;
}
return $digit;
}
?>