什么减少了PHP服务器的负载:SimpleXML或json_decode?
-
03-07-2019 - |
题
我开始用PHP开发一个Web应用程序,我希望它会变得非常受欢迎并让我变得有名和丰富。 : - )
如果到了这个时候,我决定是使用SimpleXML将API的数据解析为XML还是使用json_decode,这可能会对应用程序的可伸缩性产生影响。
有谁知道哪种方法对服务器更有效?
更新:我进行了一项基本测试,看看哪种方法效果更好。似乎 json_decode
的执行速度比 simplexml_load_string
稍快。这不是非常确定的,因为它不测试并发进程的可伸缩性之类的东西。我的结论是,我将暂时使用SimpleXML,因为它支持XPath表达式。
<?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>
结果:
XML elapsed: 9.9836
JSON elapsed: 8.3606
解决方案
作为“打火机”,格式,我希望JSON在服务器上的压力稍微小一点,但我怀疑它会是你发现自己处理的最大性能问题,因为你的网站越来越受欢迎。使用您更熟悉的格式。
或者,如果你知道如何构建你的数据,你可以尝试制作一个XML格式的版本和一个JSON格式的版本,然后根据你的设置运行它几十万次,看看它是否有一个显着的差异。
其他提示
只有一种方法可以确定您的应用程序服务器上哪些数据更容易使用您的数据。
测试它!
我会生成一些看起来类似于你将要翻译的数据,并使用其中一个单元测试框架使用SimpleXML和json_decode对其进行几千次解码,足以获得有意义的结果。然后你可以告诉我们什么有用。
对不起,这不是你想要的答案,但实际上,这是唯一正确的方法。祝你好运!
这个问题不是真正的答案,但您可以等到有很多用户访问您的系统。你的瓶颈实际上可能会让你感到惊讶:
不隶属于 StackOverflow