" ' 차이 가 있을까?
echo 'Hello World';
echo "Hello World";
이 둘의 차이?
정답은 있다.
차이 하나를 체감하긴 매우 어려우나
차이 하나가 유저 1000명이 모이면 1000배 차이가 나는것이다.
속도 테스트를 해보자!
function get_time() {
list($usec, $sec) = explode(' ', microtime());
return ((float)$usec + (float)$sec);
}
for($i=0;$i<1000;$i++){
echo 'Hello World';//cpu 로드만
}
$start = get_time();
for($i=0;$i<1000;$i++){
echo 'Hello World';
}
$time = get_time() - $start;
$start = get_time();
for($i=0;$i<1000;$i++){
echo "Hello World";
}
$time1 = get_time() - $start;
echo '<br/>'.$time.'초 걸림';
echo '<br/>'.$time1.'초 걸림<br/>';
if($time>$time1) echo ($time-$time1).'차이 뒤가 빠름';
else echo ($time1-$time).'차이 앞이 빠름';
$start = get_time();
for($i=0;$i<1000;$i++){
echo "Hello World";
}
$time = get_time() - $start;
$start = get_time();
for($i=0;$i<1000;$i++){
echo 'Hello World';
}
$time1 = get_time() - $start;
echo '<br/>'.$time.'초 걸림';
echo '<br/>'.$time1.'초 걸림<br/>';
if($time>$time1) echo ($time-$time1).'차이 뒤가 빠름';
else echo ($time1-$time).'차이 앞이 빠름';
각각 1000번씩 두번 테스트를 하고 순서는 섞었다.
결과는?
4.6014785766602E-5초 걸림
0.00010395050048828초 걸림
5.793571472168E-5차이 앞이 빠름
> ' 의 속도 승
5.5074691772461E-5초 걸림
5.4121017456055E-5초 걸림
9.5367431640625E-7차이 뒤가 빠름
> ' 의 속도 승
이 차이는 어느 정도 일까?
수치상으로 아주 차이가 나보이지는 않는다.
문자 개수가 11개 *1000번 = 11000 글자 밖에 안되고
php로 사이트가 커지면 한페이지 한페이지마다 처리 지연이 쌓여 느려질수있기 때문에 둘의 속도차이는 매우 중요하다.
왜 그럴까?
바로 ' 와 " 의 문자열 처리 방식이 달라서이다.
" 로 감싸진 문자열에 $변수 가 있으면 확인해서 치환하게 된다.
그러나 ' 는 문자로 인식하고 처리 과정이 없다.
따라서 ' 이 빠르고
정적인 부분은 ' 로 무조건 처리를 해줘야 된다.
처음에는 이게 헷갈릴수도 있는데 php를 쓰려면 이런 습관이 매우 중요하다.
한가지 예외
<?php
$hi='hi098123';
echo $hi.' HI!';//hi098123 HI!
echo "{$hi} HI!";//hi098123 HI!
?>
두 방식의 출력 결과는 같은데 아래의 방식이 더 빠르다.
(.) 으로 문자를 합치는것 보다. (") 으로 변수를 감싸거 String을 표현하는게 더 좋은방식이다.
'웹 프로그래밍 > PHP' 카테고리의 다른 글
PHP) 어제 날짜 구하기 (3) | 2020.01.17 |
---|---|
PHP) Windows GUI 프로그램(*.exe) 실행하기 (0) | 2019.12.06 |
php) echo 보다 빠른 글 출력 (0) | 2019.06.07 |
php) include vs include_once (0) | 2019.06.07 |
php) rand() vs mt_rand() (0) | 2019.06.07 |
php) isset() vs empty() (0) | 2019.06.07 |
php) $_REQUEST, $_GET, $_POST (0) | 2019.06.06 |
php) 문자 출력하기 (0) | 2019.06.06 |
저작권 보호안내
무단 전재, 재배포 행위는 금지됩니다. (글을 복사하여 게시금지)
본문의 일부(링크용 문장) 인용은 가능하지만, 출처와 링크(a 태그)를 남기셔야 됩니다.
(웹툴을 이용하고, 스크린샷/녹화하는것은 상관없습니다.)
예외적으로. 저에게 허락받은 경우에는 본문을 전재할 수 있습니다.
만약, 본문 공유를 원하신다면 링크 공유를 해주세요
저작권 정책 확인하기링크 공유하기