본문 바로가기

PHP 처리속도 올리기

반응형

mysql_fetch_array, mysql_fetch_row을 사용하자

질의 값을 가져오는 속도가 많이 차이가 난다고 한다.

mysql_fetch_row  > mysql_fetch_array >>> mysql_result

row가 제일 빠르고, 그다음이  array, result 순이라고 한다. 직관적으로 봐도 row가 가장 빠를것 같다. 단순 숫자로된 배열로 반환받아오기 때문에 특별히 처리해주어야 할것이 없고, array는 연관배열로 가져와야 하기때문에 약간은 처리해야 할것이 있겠고, result는 안써봤지만 또 특별하게 가져오는 방법이 있겠지..

되도록이면 HTML로 작성하고, PHP사용을 줄이자

보통 <??>를 사용하기 싫어서 PHP구문 안에 HTML구문까지 모두 집어 넣어서 사용하는 사람들이 있다. 당연히 HTML은 서버에서 별다른 처리를 할 필요가 없이 바로 클라이언트로 전송해주면 되지만 <??>안에 있는 구문은 단순 echo출력 구문이라고 해도 처리를해서 출력을 해주어야 한다. 조금이라도 서버에 부하가 더 걸리게 될것이다. 간단한 예를 들면

<?php

echo "<table>";

for($i=0; $i<10; $i++) {

echo "<tr><td>$i 번째 row 입니다.</td></tr>";

}

echo "</table>";

?>

위와 같이 하면 소스코딩은 좀더 간편하게 되겠지만.. 속도에서는 한표 뒤지게 된다는 것이다. 직접 테스트 해보진 않았지만 왠지 그럴것 같다.;; 반면 위 소스를 아래와 같이 고치면 속도면에서 조금더 뛰어난 코드라 할수 있겠다.

<table>
<?php for($i=0;$i<10;$i++){?>
<tr><td><?=$i?>번째 row 입니다.</td></tr>
<?php }?>
</table>

좀더 소스가 난잡해 지긴 했어도.. 속도면에서 좋다니.. 이렇게 하는 것이 좋겠다.

ereg_replace 보단 preg_replace를 사용하자

속도면에서 preg가 많이 빠르다고 한다. 정규식을 사용하지 않는 단순 문자열 치환의 경우에는 str_replace를 사용하는 것이 가장좋다.

foreach > list 속도차이

이번에 찾아보면서 처음 안 사실이지만, foreach가 속도면에서 35%정도 빠르다고 한다. 사실 난 foreach를 잘 사용하지 않는데 (문법이 익숙하지 않아서 잘 사용하지 않았었다.)  이번 기회에 잘 배워서 적극 사용해야 겠다.

foreach (array___EXPRESSION__ as $value)
statement
foreach (array___EXPRESSION__ as $key => $value)
statement

"(더블 쿼테이션)과 '(싱글 쿼테이션)의 차이

PHP를 접해본 사람이라면 대부분 들어봤음직한 이야기 인데... 더블 쿼테이션을 사용하면 서버에서 일단 문자열을 파싱하기 때문에 속도가 느리다. 파싱할 필요가 없는 문자열 이라면 싱글쿼테이션을 사용하자.

if문 보다 삼항연산자를 활용하는것이 더 좋다....

Beginner : if($a>1) { $b=2; } else { $b=3; }

Experienced : $b = ($a>1) ? 2:3;

대충은 아래 있는 것이 빠르다는것을 알고는 있지만.. 여러줄의 코드 실행 같은 경우에는 if문을 사용한다. 되도록이면 삼항연산자를 활용하는 방안으로 작성해야 겠다.

반응형

댓글


Copyright ⓒ SmartWeb All rights reserved.