PHP 서버에 부하가 적은 것은 Simplexml 또는 Json_decode는 무엇입니까?
-
03-07-2019 - |
문제
나는 PHP에서 웹 애플리케이션을 개발하기 시작하여 엄청나게 인기가 있고 나를 유명하고 부자로 만들기를 바랍니다. :-)
그 시점이 오면, 단순한 렉스mL로 XML로 API 데이터를 구문 분석할지 또는 json_decode를 사용하는지 결정하면 앱의 확장 성에 차이가 생길 수 있습니다.
이러한 접근 방식 중 어느 것이 서버에 더 효율적인지 아는 사람이 있습니까?
업데이트: 나는 어떤 방법이 더 성능이 좋은지 확인하기 위해 기초 테스트를 실행했습니다. 그것은 보인다 json_decode
보다 약간 빠릅니다 simplexml_load_string
. 동시 프로세스의 확장 성과 같은 것을 테스트하지 않기 때문에 이것은 결정적이지 않습니다. 내 결론은 XPath 표현에 대한 지원 때문에 당분간 SimpleXML과 함께 갈 것이라는 점입니다.
<?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 각각을 사용하여 수천 번 디코딩하여 의미있는 결과를 얻을 수 있습니다. 그리고 당신은 우리에게 무엇이 효과가 있었는지 말할 수 있습니다.
죄송합니다 이것이 당신이 찾고 있던 일종의 대답은 아니지만 실제로는 그것을하는 유일한 방법입니다. 행운을 빕니다!
실제로 질문에 대한 답은 아니지만 많은 사용자가 시스템을 때릴 때까지 기다릴 수 있습니다. 병목 현상이 실제로 어디에 있는지 놀랄 수도 있습니다.