문제

나는 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 각각을 사용하여 수천 번 디코딩하여 의미있는 결과를 얻을 수 있습니다. 그리고 당신은 우리에게 무엇이 효과가 있었는지 말할 수 있습니다.

죄송합니다 이것이 당신이 찾고 있던 일종의 대답은 아니지만 실제로는 그것을하는 유일한 방법입니다. 행운을 빕니다!

실제로 질문에 대한 답은 아니지만 많은 사용자가 시스템을 때릴 때까지 기다릴 수 있습니다. 병목 현상이 실제로 어디에 있는지 놀랄 수도 있습니다.

http://gettingreal.37signals.com/ch04_scale_later.php

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top