PHP: 보다 빠른 echo를 위하여 – 도트(.) 보다 나은 중괄호({})

저번 글에서 콤마(,) 연산자 보다 도트(.) 연산자를 사용하라고 하였다. 콤마 연산자는 매번 write() 시스템 콜을 호출하기 때문이다. 그럼 도트(concatenation) 연산자를 사용하는 것이 최선의 방법일까? 엄밀히 말하면 모든 경우에 그렇지는 않다.

이 두 코드를 비교하면 전자 보다 후자가 빠르다. 그 이유는 도트 연산자가 두 번 이상 등장하면 연산 작업을 중복하여 여러번 수행하는 문제가 있기 때문이다. 도트를 사용하는 횟수에 따라 급격히 연산 작업 횟수가 증가하므로 다수의 변수를 합친다면 비효율적인 된다.

그러므로 두 번 이상 도트를 사용하여 문자열을 출력해야 하는 경우 중괄호를 사용해서 문자열 내에서 처리를 하는 것이 빠르다. 이 문제는 합치기 연산 횟수에 관련된 것이므로 꼭 echo 문이 아니라 변수에 대입하는 경우도 동일하다.

지금까지 도트 연산자를 주로 사용했다면 앞으로는 중괄호를 사용하는 습관을 들여보도록 하자.

PHP: 보다 빠른 echo를 위하여 – 도트(.) 보다 나은 중괄호({})”의 2개의 생각

    1. 콤마를 사용하면 OP 개수가 줄어서 속도는 더 빨라집니다만, 대신 시스템콜 횟수가 늘어나서 커널 영역에 소비되는 CPU가 증가하게 됩니다. User와 Kernel 간의 전환 횟수가 증가하는 것과 OP 개수가 줄어서 빨라지는 것 중에 어느 쪽을 선택할지는 상황에 따라 달라질 듯 싶습니다.

      그리고 벤치마크를 해 본 결과 그 차이는 크지 않으므로, 성능 때문에 연산자를 고르기 보다는 가독성을 감안하는 것도 나쁘지 않은 선택 같습니다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다