Ben aynı anda yüzlerce kullanıcı genelinde milyonlarca hesaplamalar hokkabazlık, son derece yoğun CPU PHP betikleri bir koleksiyona sahip.
Ben PHP değişken atama internals hızlandırmak için bir yol bulmaya çalışırken, ve C vs dizileri döngü ediyorum
PHP açıkça gevşek yazdığınız olmasına rağmen, özellikle türü atamak için herhangi bir yolu / uzantısı C tarzı moda (hatta daha pahalı görünüyor döküm, not, atamak) var mı?
İşte kastediyorum.
Bu C bazı kukla kod:
#include <stdio.h>
int main() {
unsigned long add=0;
for(unsigned long x=0;x<100000000;x++) {
add = x*59328409238;
}
printf("x is %ld\n",add);
}
Kendi kendini açıklayıcı Pretty - bu, bazı 59 milyar keyfi sayısına göre 100 milyon kez, katlarını her yineleme döngüler bir değişkene ve onu yazdırır atar.
Benim Macbook, onu derleme ve çalışan üretti:
lees-macbook-pro:Desktop lee$ time ./test2
x is 5932840864471590762
real 0m0.266s
user 0m0.253s
sys 0m0.002s
Oldukça lanetlemek hızlı!
PHP 5.3 CLI benzer bir komut dosyası ...
<?php
for($i=0;$i<100000000;$i++){
$a=$i*59328409238;
}
echo $a."\n";
?>
Üretilen ...:
lees-macbook-pro:Desktop lee$ time /Applications/XAMPP/xamppfiles/bin/php test3.php
5.93284086447E+18
real 0m22.837s
user 0m22.110s
sys 0m0.078s
0.2 vs 22 saniye üzerinde!
PHP bu basit C programının daha perde arkasında çok daha fazla bir halt yaptığını fark - ama daha 'doğal' ilkel türleri ve döngüler üzerinde davranmaya PHP internals yapmak için herhangi bir yolu var mı?