Kişisel bir hayvan proje üzerinde bazı profilleme yaptıktan sonra, bazı aptal mikro optimizasyonlar etrafında oynuyorum. Bu büyük ölçüde bu yüzden titriyor şeyler aslında tweaked gerekmez şeyden daha bir deney. Ama yine de ilginç bir egzersiz var.
Her neyse, ben apt MacPorts ile OS X ve Ubuntu üzerinde PHP 5.3 benim yükleme arasında garip bir performans farkı geldim.
Aşağıdaki kod OS X üzerinde iki farklı sürümleri arasında büyük bir hız farkı gösteriyor gibi görünüyor, ancak Ubuntu sadece ufacık bir hız farkı.
$x = array(9);
// As per BarsMonster's comment, this ensures it runs for more
// than a second in order to avoid possible kernel scheduler differences
$count = 10000000;
$s = microtime(true);
for ($i=0;$i<$count;$i++) {
$q = is_string($x);
}
var_dump(microtime(true)-$s);
$s = microtime(true);
for ($i=0;$i<$count;$i++) {
// This is obviously only useful if you'll never need a string
// with 'Array' in it here
$q = (string)$x!='Array';
}
var_dump(microtime(true)-$s);
OS X üzerinde çalışan çıkış:
float(17.977133989334)
float(4.2555270195007)
Ubuntu üzerinde çalışan çıkış:
float(5.2112979888916)
float(3.4337821006775)
Beni yukarı kesmek döküm sürümü için rakamlar oldukça benzer olduğunu görmek için sürpriz değil, ancak is_string yöntem çılgınca farklıdır.
Bu ne kadar özellik olabilir? Performans yükleme önemsiz tip test fonksiyonları için kurulumu çok büyük ölçüde değişir, nasıl benim hedef dağıtım platformu eşleşmeyen bir işletim sistemi kullanarak profilleme sonuçlarını güvenebilirim?
Ubuntu ve OS X'te hem de açık veya kapalı APC ile çalışan zamanlarda fark yoktur