PHP'de bir web uygulaması geliştirmeye başladım, umarım inanılmaz derecede popüler olur ve beni ünlü ve zengin yapar. :-)Bir PHP sunucusuna daha az yük koyan: SimpleXML veya json_decode?
Eğer bu süre gelirse, API'nın verilerini SimpleXML ile XML olarak mı yoksa json_decode'u kullanıp kullanmama kararı uygulamanın ölçeklenebilirliğinde bir fark yaratabilir.
Bu yaklaşımlardan hangisinin sunucu için daha verimli olduğunu bilen var mı?
Güncelleme
: Ben daha fazla ölçülebilir olduğu yöntem görmek için ilkel testi yaptı.json_decode
'un
simplexml_load_string
'dan biraz daha hızlı yürütüldüğü anlaşılıyor. Bu, son derece anlamlı değildir çünkü eşzamanlı süreçlerin ölçeklenebilirliği gibi şeyleri test etmemektedir. Benim sonucum, XPath ifadeleri için destek nedeniyle şimdilik SimpleXML ile devam edeceğim.
<?php
$xml = file_get_contents('sample.xml');
$json = file_get_contents('sample.js');
$iters = 1000;
// simplexml_load_string
$start_xml = microtime(true);
for ($i = 0; $i < $iters; ++$i) {
$obj = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
}
$end_xml = microtime(true);
// json_decode
$start_json = microtime(true);
for ($i = 0; $i < $iters; ++$i) {
$obj = json_decode($json);
}
$end_json = microtime(true);
?>
<pre>XML elapsed: <?=sprintf('%.4f', ($end_xml - $start_xml))?></pre>
<pre>JSON elapsed: <?=sprintf('%.4f', ($end_json - $start_json))?></pre>
Sonuç:
"hafif" biçiminde olarakXML elapsed: 9.9836
JSON elapsed: 8.3606
Kişisel kriter korkunç gerçekçi değildir: En darboğazları aslında yalan nereye şaşırabilirsiniz. Şüphesiz, verileri bir şekilde manipüle edeceksiniz, sadece yükleme değil. En azından birkaç değerden veya bir şeyden yinelemeyi deneyin. Yükleme süresi, muhtemelen gerçekleştireceğiniz gerçek işlemin büyük bir kısmı değildir. –