Метод последовательного приближения


Несколько лет назад на форуме появился топик.
Банальная история - провайдер заблокировал аккаунт за превышение лимита по процессору.
сразу порадовали вопросы - то, какие средний пользователь пхп видит пути повышения производительности:
Пожалуйста подскажите мне: Как уменьшить нагрузку на сервер, оперативную память?
1. Может удалять переменные после их использования?
2. Может уменьшить время жизни сессий
3. Не использовать функции типа "Preg_replace"

далее идёт долгая беседа о гадскости хостера и методах оптимизации.
рассказывается об установке пхп5 для кэширования.
из информации, предоставленной хостером, выясняется, что дольше всего работает функция photo.php
выясняем. оказывается - ничего особенного - определяет размер картинки.
странно. Ну нельзя же загрузить определением размера картинки сервак по самую макушку! Даже если читать её всю в память целиком!

и тут... аффтар выдаёт код функции. привожу полностью
*барабанная дробь*
include( 'includes/systems/header.inc' );
@list($wdth,$hght) = getImageSize( $_GET['photo'] );
while( ( $wdth > $_SESSION['wdth']-100 ) || ( $hght > $_SESSION['hght']-100 ) ){
$wdth = $wdth / 1.00001; # <-- вот оно
$hght = $hght / 1.00001; # <-- прекрасное!
}
$hghtP = $hght;
$wdthP = $wdth;
@$prms = ( $wdth > $hght )? 'width=' . (int)$wdthP: 'height=' . (int)$hghtP;

Видимо, когда в школе проходили пропорции, чувак болел. Поэтому решил сразу начать с метода последовательного приближения. Чтобы не ошибиться, шаг выбран очень маленький, в одну миллионную.
И эти циклы на миллион итераций вызывались при каждом показе страницы.

пруф