if문을 삼항 연산자로 속도 개선 - 테스트 결과 정보
if문을 삼항 연산자로 속도 개선 - 테스트 결과
본문
삼항 연산자가 빠르다는 잠돌님의 팁이 있어서 실제로 그런가 궁금하기도 하고, 잠도 안오고 해서 다음과 같이 2가지 소스를 이용해 테스트해봤습니다.
<소스1>
for($i=0; $i<n; $i++) {
$j = rand(0,1);
$a = ( $j == 1 ) ? true : false;
echo $a;
}
<소스2>
for($i=0; $i<n; $i++) {
$j = rand(0,1);
if ( $j == 1 ) $a = true;
else $a = false;
echo $a;
}
결과
<소스1>
n=10
0.000264167785645
n=100
0.000355958938599
n=1000
0.00135087966919
n=10000
0.0113849639893
n=100000
0.112245082855
<소스2>
n=10
0.000261068344116
n=100
0.000358104705811
n=1000
0.00132989883423
n=10000
0.0112760066986
n=100000
0.111699104309
저의 결과는 "차이가 없다"로 나왔네요..
잠돌님께 딴지 걸려는 건 아니고요, 그냥 이런 결과가 있다라고 말씀드리는 겁니다. ^^;
추천
0
0
댓글 3개

<소스1>
for($i=0; $i<n; $i++) {
$j = rand(0,1);
echo ( $j == 1 ) ? true : false;
}
이렇게 써야 삼항 연자자"를 쓴 보람이 있지 않을까요?
속도야 별 차이 없을 거라 생각합니다.
for($i=0; $i<n; $i++) {
$j = rand(0,1);
echo ( $j == 1 ) ? true : false;
}
이렇게 써야 삼항 연자자"를 쓴 보람이 있지 않을까요?
속도야 별 차이 없을 거라 생각합니다.

어차피 둘다 참이냐 거짓이냐 비교하고 실행되기 때문에 별차이 없다고 들어습니다.
switch 문도 같다고 하던데요 그런데 갠적으로 깔끔한 소스가 좋쵸 ^^
switch 문도 같다고 하던데요 그런데 갠적으로 깔끔한 소스가 좋쵸 ^^

삼항연산자와 if문을 비교하는 것 자체가
무리가 있습니다.
삼항 연산자는 결국 expression이고
if문은 statement입니다.
무리가 있습니다.
삼항 연산자는 결국 expression이고
if문은 statement입니다.