xml 파싱 속도 너무 느려요. 좋은 방법 없나요??
본문
현재 사이트에 외부 xml을 가지고와서 뿌려주는데,
속도가 너무 느려요. 페이지 열때마다 20초정도 걸리네요.
좀 더 빨리 보여줄 수 있는 방법이 없는건가요??
$url2 = http://test.com/test.xml; //xml주소는 실제로는 다릅니다.
if( ! $xml2 = simplexml_load_file($url2) )
{
echo 'XML에러!';
}
else
{
foreach( $xml2->key as $value )
{
$company = $value->company;
$title =$value->title;
?>
<li>$company?> <?=strcut_utf8($title,20, false, "...");?> </li>
<?
}
}
?>
답변 4
아래 링크내용이 xml에도 적용될지는 모르겠지만
참조해 보시죠. 물론 구글링 결과로 링크와는 전혀 상관없는 사람입니다 ㅎㅎ
http://bartfarthing.co.kr/bbs/board.php?bo_table=regexp&wr_id=54
평정심님, 울라라라우님 어떤 해결책이 있는지요? 유독 dns가 함께 있는 linux웹서버에서 외부xml을 파싱하려니 가져오는데 시간이 많이 걸리네요. 한수 지도 부탁드려요. 서버설정이 어떤것인지.....위 사이트는 가입해도 해당게시물을 볼수 없네요 -_-
평정심님 감사드려요. 자답입니다.
DNS 서버를 운영중인 웹서버에서 외부XML파싱할때
소요시간=로딩시간(원격서버에서 가져오는)+파싱시간(XML잘라붙이기)
중 로딩시간이 7초정도 소요되는 문제로 의아해 했는데, /etc/hosts 파일에 원격서버의 ip랑 도메인 넣어주면 바로 로딩해 버리네요(7초는 커녕 1초도 안걸리네요 -_-). hosts파일내용은 원격서버를 찾기 위해서 dns server에 문의하기 전에 참조해서 바로 연결하므로, dns서버를 통해서 원격서버를 찾아 xml을 받는데서 문제가 생기나봅니다. 혹시라도 같은 문제를 만나시면 hosts파일에 원격서버정보 넣은후 network 재시작한 다음 시도해 보세요.^^
(윗글 수정이 안되서 덧글로 남깁니다)
dns 서버가 설정문제가 있어 정상동작을 못하고 잇었네요. /etc/hosts 파일에 굳이 추가하지 않아도 dns설정이 제대로 되어 있고 네트웍이 문제가 없으면 바로 접속이 됩니다. -_- . 물론 /etc/hosts파일에 원격서버정보를 넣어주면 dns랑 즉시 연결하네요.