Ok, powiedzmy że moja teoria moze nei sprawdzić się w niektórych przypadkach - bardzo małych obrazkach ponieważ wtedy pętla przechodzi niewiele razy.
Co do bibliotek PHP nie sądze, żeby były spaprane i oddane takie do użytku ludzi. Na pewno nie aż tak spaprane.
Jeśli chodzi o wyższość kodu skompilowanego nad interpretowanym to zaraz moge zrobić mały test i porównać php z c++. Oczywiscie nic nie stoi na przeszkodzie, aby biblioteki były pisane w assemblerze.
Edit:
Kod
<?php
function getmicrotime(){
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}
$time=getmicrotime();
$a;
$i=10000000;
while($i--){
$a+=i;
}
echo getmicrotime()-$time; // ~24 sekundy
?>
#include <iostream>
#include <stdlib.h>
#include <time.h>
int main()
{
int seconds = time (NULL);
int a;
int i=10000000;
i*=1000;
while(i--){
a+=i;
}
printf("%d\n\n", time (NULL)-seconds); // ~7 sekund
system("PAUSE");
return 0;
}
Dla php wyszło około 24 sekundy a dla c++ około 7 sekund, przy czym musiałem troszkę zwiększyć zakres (zmienną i) ponieważ ciężko określić jaka liczba po zaokręgleniu daje 0.
To tylko prosty przykład pokazujący jaka jest przepaść pomiędzy czasem wykonywania kodu skompilowanego a kodu interpretowanego.
Wnioski można samemu wyciągnąć