⊗ppSpOtRHO 73 of 83 menu

Raskaiden PHP-operaatioiden toiston optimointi

Edellisessä oppitunnissa toistuvat funktiokutsut veivät todellisuudessa hyvin vähän aikaa, eikä optimointimme säästänyt kovin paljon. Kaikki on kuitenkin paljon pahempaa, jos teemme useita kertoja kutsun "raskaaseen" funktioon, joka vie suorittamiseen melko paljon aikaa.

Oletetaan esimerkiksi, että meillä on funktio, joka löytää luvun jakajat:

<?php function getDivisors($num) { $result = []; for ($i = 1; $i <= $num; $i++) { if ($num % $i == 0) { $result[] = $i; } } return $result; } ?>

On ilmeistä, että tämä funktio on melko "raskas". Siksi olisi huono idea kirjoittaa seuraavanlaista koodia:

<?php $num = 123456; if (array_sum(getDivisors($num)) >= 10 and array_sum(getDivisors($num)) <= 100) { } else { } ?>

On tietysti parempi suorittaa "raskas" operaatio kerran ja tallentaa tulos muuttujaan, ja sitten käyttää tätä muuttujaa tarvittavissa paikoissa:

<?php $num = 123456; $sum = array_sum(getDivisors($num)); if ($sum >= 10 and $sum <= 100) { } else { } ?>

Optimoi alla oleva koodi:

<?php $num = 1233456789; if (getSumSquare($num) >= 10 and getSumSquare($num) <= 100) { echo 'oikein'; } else { echo 'väärin'; } function getSumSquare($num) { $digits = explode('', $num); $sum = 0; foreach ($digits as $digit) { $sum += $digit * $digit; } return $digit; } ?>
Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää