웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
[씽크식 PHP] 출력, 어떤 방법이 빠를까?
2002.05.29 18:48
당연한걸 가지고 강좌라고 쓰는게 우습겠지만 그냥 할일없을때 아무거나 적혀있는 글 읽듯이 읽으신다면 좋을것 같습니다. -ㅁ-
우선.. 여기서는 echo();의 실행 속도에 대해서 말하도록 하죠.
그전에 이 내용은 언제 한번 phpschool.com에서 본적이 있는걸 쓰는겁니다.
다음 두가지 스크립 중에서 어느것이 더 빠를지 맞춰보세요.
<?php
//1번
for($i=0;$i<10000;$i++)
{
echo("출력 테스트!!<BR>n");
}
?>
<?php
//2번
for($i=0;$i<10000;$i++)
{
$text.="출력테스트!!<BR>n";
}
echo($text);
?>
네, 2번 소스가 더 빠릅니다.
이유는 간단 하죠.
결과는 같아도.. 과정에서 1번은 만번이나 echo(); 를 호출하지만 2번은 한번만 호출합니다. -ㅁ-
호출시간을 계산한다면 2번이 빠릅니다.
한번 해보세요.
[참고]
php.ini에서 아웃버퍼링을 켜두면 속도는 오히려 1번이 빨라집니다.-ㅁ-
?>
우선.. 여기서는 echo();의 실행 속도에 대해서 말하도록 하죠.
그전에 이 내용은 언제 한번 phpschool.com에서 본적이 있는걸 쓰는겁니다.
다음 두가지 스크립 중에서 어느것이 더 빠를지 맞춰보세요.
<?php
//1번
for($i=0;$i<10000;$i++)
{
echo("출력 테스트!!<BR>n");
}
?>
<?php
//2번
for($i=0;$i<10000;$i++)
{
$text.="출력테스트!!<BR>n";
}
echo($text);
?>
네, 2번 소스가 더 빠릅니다.
이유는 간단 하죠.
결과는 같아도.. 과정에서 1번은 만번이나 echo(); 를 호출하지만 2번은 한번만 호출합니다. -ㅁ-
호출시간을 계산한다면 2번이 빠릅니다.
한번 해보세요.
[참고]
php.ini에서 아웃버퍼링을 켜두면 속도는 오히려 1번이 빨라집니다.-ㅁ-
?>
댓글 11
-
John Sync.
2002.05.29 18:50
-
jugug
2002.05.29 19:29
두개가 출력이 다른 소스 아닌가요?
위에는 "출력테스트" 만번 출력..
아랫건 한번출력.. -
최경수
2002.05.29 19:34
아랫것 소스 대괄호를 echo($text); 다음에 넣으시면 만번하겠네요.
for($i=0;$i<10000;$i++)
{
$text.="출력테스트!!<BR>n";
echo($text);
}
?> -
John Sync.
2002.05.29 20:18
jugug,최경수 // 변수뒤에 점(.)을 입력시키면 그 뒤에 포인터를 놓고 추가시키는겁니다.
$text.="출력테스트!!<BR>n";
$text=$text."출력테스트!!<BR>n";
두가지는 같은 효과란 말이죠.. -
mini
2002.05.30 11:37
안녕하세요 씽크님 ^^;
참고로 당연히 적은수의 루프에서는 버퍼를 거치지 않는게 빠릅니다.
( 대략 100개 이하정도.. 시스템에 따라 다르지요; )
이건 output_buffering 이 꺼져있어도 그렇습니다; -
cguy
2002.05.30 15:47
어제 인크루드한 php 파일들을 모조리 손봐줬습니다.
에코 출력방법 모두 바꿔줬고요. for 문을 다 while 문으로 바꾸는 노가다도 했고요.
확실히 퍼포먼스 타임이 좋아진것 같네요. ^^
당연히 적은수의 루프에서는 버퍼를 거치지 않는게 빠릅니다.
-> 이부분이 이해가 잘 가지않는데, 설명좀 해주세요. -
ZZir
2002.05.30 23:10
fot 와 while 중... 조건식에 따라서는 for 가 더욱 빠릅니다.
while($i < 10) {} 이런것은 비슷하지만,
while($row = mysql_fetch_array($result)) {} 이런건 속도차이가 많이 납니다.. -
ZZir
2002.05.30 23:11
즉 함수 쓸때는, for 문을 쓰는게 낫고 함수의 결과를 받아서 처리하는것이 낫습니다.
$c = count($arr);
for ($i = 0; $i < $c; $i++) {
do...something...
} -
TheMics
2002.05.31 08:27
$text.="출력테스트!!<BR>n";
만일 여기서 .을 =로 바꿔서
$text=="출력테스트!!<BR>n";
가 되면 한번만 출력되니 주의하세여;; -
슈퍼왕뚜껑
2002.06.08 18:20
이제껏 프로그래밍 하면서 만번씩이나 루프를 돌린적이 없어서..^^;; -
김용욱
2002.06.11 21:54
while에 함수를 넣어서 값을 받으신것 처럼 for에서도 값을 받으시면 성능상의 차이는 없습니다. while과 for는 취향의 차이이죠. 전 대부분을 for를 써서 해결하는 스타일입니다. c++ 어플리케이션을 짤때도 제가 제일 많이 쓰는 제어문중의 하나는 for( ; ; ) = 무한루프이죠. :)
제목 | 글쓴이 | 날짜 |
---|---|---|
[mysql] 별로 쓸대는 없지만..그래도.. | 불티나 | 2002.06.18 |
만들어보자~ PortScan For PHP [5] | OsE= | 2002.06.16 |
Flush() [2] | OsE= | 2002.06.16 |
[책에서 퍼옴] html과 php의 결합 혹은 분리 [7] | 박민호 | 2002.06.13 |
php 와 flash 의 연동을 이용한 제로보드 최근글 추출...(소스) | 주현석 | 2002.06.05 |
총페이지의 값을 구하고 출력하기 | 불티나 | 2002.06.05 |
제로카운터 한 계정에서 여러개 사용하기 [7] | 영혼 | 2002.06.01 |
PHP로 그래프를 그려보자. [2] | ★Zzony~ | 2002.05.30 |
[씽크식 PHP] 출력, 어떤 방법이 빠를까? [11] | John Sync. | 2002.05.29 |
제로보드 상황판때기(?) 만들기... [9] | _a_SPD_a_ | 2002.05.28 |
초보자를 위한 PHP강좌 파일 [chm형식] [5] | ZipShin | 2002.05.21 |
MYSQL에 접속하기..^^ [9] | ZipShin | 2002.05.20 |
서기가 쓰는 Echo [12] | 서기 | 2002.05.20 |
제가 쓰는 mysql 검색알로리즘 입니다. [5] | 콩알™ | 2002.05.20 |
echo도 많이 유용하게 사용할수있습니다..^^ [14] | ZipShin | 2002.05.19 |
접속 IP 알아보기..^^ [11] | ZipShin | 2002.05.16 |
NaN ,Undifind, Null 이 먼 말이 다냐? [2] | 최후의성전 | 2002.05.15 |
간단한 퀴즈? 프로그램을 짜보자구요~^^ [4] | teenteenv | 2002.05.15 |
PHP로 아바타를 구현해 봅시다. [18] | ★Zzony~ | 2002.05.13 |
[ 삼항연산 ] 조건문 리턴 [6] | 불티나 | 2002.04.20 |
오타 났네요;;
제가 알기론 아웃풋버퍼링 설정은 디폴트가 off인걸로 알고 있습니다.