문자열 더할 때 속도 비교
인터넷정보2007. 12. 13. 13:27
//////////// 첫번째 방법
$t1 = explode(" ",microtime());
$str = "";
for ($i=0;$i<20000;$i++) {
$str = $str.$i."번째 문자열<br>";
}
$t2 = explode(" ",microtime());
echo ($t2[1]-$t1[1])+($t2[0]-$t1[0]);
//////////// 두번째 방법
$t1 = explode(" ",microtime());
$str = "";
for ($i=0;$i<20000;$i++) {
$str = $str.($i."번째 문자열<br>");
}
$t2 = explode(" ",microtime());
echo ($t2[1]-$t1[1])+($t2[0]-$t1[0]);
//////////// 세번째 방법
$t1 = explode(" ",microtime());
$str = "";
for ($i=0;$i<20000;$i++) {
$str .= $i."번째 문자열<br>";
}
$t2 = explode(" ",microtime());
echo ($t2[1]-$t1[1])+($t2[0]-$t1[0]);
결과 :
첫번째 방법 -> 5초 ~ 10초 이상 속도가 걸림
두번째 방법 -> 0.5초 이하로 빠름
세번째 방법 -> 0.5초 이하로 빠름
문자열 더할 때 절대 첫번째 방법 사용하지 맙시다!
근데 확실히 PHP가 빠르긴 빠르네요.
ASP로 for 구문 20000번 돌렸을 때
첫번째 방법은 대략 13~15초
두번째 방법은 대략 6~7초 나오는데 -_-
첫번째 방법과 두번째 방법은 단순히 괄호를 하냐 안하냐의 차이인데
이렇게 속도 차이가 나는 이유는
http://www.microsoft.com/korea/msdn/library/etc/issues/2003/aspstrcatn/
여기가서 확인하세요.
펌:뭉충닷컴
흔히 string buffer 라고 하는 방법을 추가해서 테스트 해봤는데, 그래도 .= 가 더 빠르네요.
PHP5 를 쉘에서 실행하느라 코드가 다음과 같았습니다.
$t1 = microtime(true);
$str = '';
$arr = array();
for ($i=0;$i<$times;$i++) {
$arr[] = $i."번째 문자열<br>";
}
$str = join('', $arr);
$t2 = microtime(true);
echo ($t2-$t1);
echo "\n";
1~3번째 방법도 동일하게 다시 테스트해봤는데, 8000번 반복에
8.85153102875
4.30858206749
0.0193250179291
0.032870054245
이렇게 나타나네요. ^^
펌:행복한고니
$t1 = explode(" ",microtime());
$str = "";
for ($i=0;$i<20000;$i++) {
$str = $str.$i."번째 문자열<br>";
}
$t2 = explode(" ",microtime());
echo ($t2[1]-$t1[1])+($t2[0]-$t1[0]);
//////////// 두번째 방법
$t1 = explode(" ",microtime());
$str = "";
for ($i=0;$i<20000;$i++) {
$str = $str.($i."번째 문자열<br>");
}
$t2 = explode(" ",microtime());
echo ($t2[1]-$t1[1])+($t2[0]-$t1[0]);
//////////// 세번째 방법
$t1 = explode(" ",microtime());
$str = "";
for ($i=0;$i<20000;$i++) {
$str .= $i."번째 문자열<br>";
}
$t2 = explode(" ",microtime());
echo ($t2[1]-$t1[1])+($t2[0]-$t1[0]);
결과 :
첫번째 방법 -> 5초 ~ 10초 이상 속도가 걸림
두번째 방법 -> 0.5초 이하로 빠름
세번째 방법 -> 0.5초 이하로 빠름
문자열 더할 때 절대 첫번째 방법 사용하지 맙시다!
근데 확실히 PHP가 빠르긴 빠르네요.
ASP로 for 구문 20000번 돌렸을 때
첫번째 방법은 대략 13~15초
두번째 방법은 대략 6~7초 나오는데 -_-
첫번째 방법과 두번째 방법은 단순히 괄호를 하냐 안하냐의 차이인데
이렇게 속도 차이가 나는 이유는
http://www.microsoft.com/korea/msdn/library/etc/issues/2003/aspstrcatn/
여기가서 확인하세요.
펌:뭉충닷컴
흔히 string buffer 라고 하는 방법을 추가해서 테스트 해봤는데, 그래도 .= 가 더 빠르네요.
PHP5 를 쉘에서 실행하느라 코드가 다음과 같았습니다.
$t1 = microtime(true);
$str = '';
$arr = array();
for ($i=0;$i<$times;$i++) {
$arr[] = $i."번째 문자열<br>";
}
$str = join('', $arr);
$t2 = microtime(true);
echo ($t2-$t1);
echo "\n";
1~3번째 방법도 동일하게 다시 테스트해봤는데, 8000번 반복에
8.85153102875
4.30858206749
0.0193250179291
0.032870054245
이렇게 나타나네요. ^^
펌:행복한고니
'인터넷정보' 카테고리의 다른 글
PHP Shorthand If / Else Examples (0) | 2007.12.22 |
---|---|
cron을 사용하지않고 화일 캐쉬 (0) | 2007.12.22 |
[서버운영] Apache mod_gzip 압축 (0) | 2007.12.22 |
[스크립트] 스크립트만으로 움직이는 막대 Chart 그래프 (0) | 2007.12.19 |
[스크립트] 드래그 & 드롭 객체 Drag (0) | 2007.12.19 |
INPUT label - 인풋 라벨태그 (0) | 2007.12.13 |
웹서버에 부하없는.. 실시간 상담용 채팅프로그램 , AJAX (0) | 2007.12.04 |
[함수] 'ㅅㅂㄹㅁ','凸' 욕 필터링 (0) | 2007.12.04 |
[알고리즘] 큰 배열에서 검색방법 (0) | 2007.12.04 |
제로보드 스팸광고게시물,덧글 자동등록 방지 ZM_Crypt 2.0 (0) | 2007.12.04 |