PHP sayfası hız yazma artırılması

3 Cevap php

Şu anda xml dışarı yazıyorum ve aşağıdaki yaptım:

header ("content-type: text/xml");
header ("content-length: ".strlen($xml));

$ Xml yazılmak xml olmak. Yazma çalıştırmak için komut daha fazla zaman alıyor gibi ben metin (I kundakçı aracılığıyla bulundu) yaklaşık 1.8 Meg yakın değilim, bu yazma hızını artırmak için bir yol var .. görünüyor?

Şimdiden teşekkür ederim.

3 Cevap

Gerçekten verileri yazıyoruz nasıl bağlıdır. Eğer DOM kullanarak ediyorsanız, yazar XMLWriter düşünün. Bu biraz daha hızlı ve daha akıcı bulunuyor.

Eğer XML çıktı Homebrewing ediyorsanız, gereksiz yere dizeleri ekleme kalmamasını sağlamak. Örneğin:

echo "<tag>" . $data . "</tag>"; // this is slower
echo '<tag>', $data, '</tag>';   // this is faster

Virgül operatörü yeni dizeler yaratmaz. Ayrıca tek tırnaklı dizeleri çift tırnak biraz daha hızlıdır, düşünün. Taramak için hiçbir değişken ikamesi yoktur. Normalde, fark çok az, ama sıkı bir döngüde kesinlikle bunu görebilirsiniz.

Veri kaynağı ve nasıl XML oluşturmak bağlı olarak, işlem tıkanıklık olabilir. xdebug ile profil ve darboğazlar aslında nerede görmeye çalışın.

Google sonuçları yankı büyük dizelerinin kötü bir performansa sahip olduğunu düşündürmektedir. Bir çözüm parçalar halinde echo'd edilecek dize kırmak olacaktır;

function echobig($string, $bufferSize = 8192)
{
    $splitString = str_split($string, $bufferSize);

    foreach($splitString as $chunk)
        echo $chunk;
}

Ben bu kodu test ettik, unutmayın; Ben php docs buldum. this blog post parçalar halinde yankı dize bölme tarafından çözüldü benzer bir sorunu vardı başkası için okuyun.

Bu geçici bir dosyaya XML damping ve ardından kullanıcıya veri göndermek için readfile kullanarak denemeye değer olabilir.