웹마스터 팁

변수 $i를 가정하고

$i++ 과 $i+=1 은 $i를 1증가시키는 구문입니다.

과연 저 둘이 실제상황(?)에서 속도차이를 보일까 하는 의문에서
간단한 실험을 했습니다.

일단

for($i = 0; $i < 1000000; $i++); 와

for($i = 0; $i < 1000000; $i+=1); 를 따로 실행해서
마이크로초 단위로 실행시간을 계산해본 결과,


$i++ 일때

0.87869
0.859785
0.93886
0.882139
0.924311
0.872625
0.866393
0.890392
0.889265
0.866099
0.861506
0.880137



$i+=1 일때

0.928549
0.950968
0.995221
0.954347
0.941408
0.940832
0.957434
0.990631
0.936167
0.963263
0.966622
0.98165


백만번 루프에서 0.1초 이내의 차이가 나는것이 확인되었습니다.
아마도 파서에의해 번역될때,
++는 어셈블리 INC ecx 명령으로 번역되고,
+=1은 어셈블리 ADD ecx, 1 정도로 번역된다고 생각합니다.

저 둘의 처리 속도차이로 이와같은 결과가 생긴다고 생각되는군요. (;)


역시 크게 신경쓰문제는 아닐듯 합니다.