워드프레스 속도향상

By | 2005-04-10

오전에 mylook님이 “http://hooney.net/blog/index.php/2005/04/05/26 설치하셨어요?” 라고 물으셨는데 잠깐 자리 비운사이라 대답을 못했다. Hooney님의 글을 엊그제 보긴 봤는데 “뭘까?” 라고 잠깐 생각했다가 깜빡 잊고 있었다. 다시 제대로 살펴보았다.
워드프레스는 관리자페이지나 사용자에게 출력할 메세지들이 영어로 되어 있다. 이것을 자신이 사용하는 언어로 변경할 수 있는데 언어파일을 이용하여 관리자페이지나 에러메세지들을 자국어로 변경할 수 있고 일부 메세지들은 테마파일을 수정함으로써 바꿀 수 있다. ( 한글 언어파일 사용에 대해서는 곰님의 워드프레스 1.5 한국어판을 참고.)
MEX Blog에 따르면 영어로 출력할때보다 언어파일을 사용하여 자국어를 사용할 경우 블로그가 느려진다는 것이었고 그에 대한 해결책을 적어 놓았다. 영어로 된 문서이기 때문에 늘 그렇듯이 정신을 집중해서 대충 얼렁뚱땅 읽고 바로 실험에 들어갔다.

  1. 먼저 현재 한글 언어파일을 사용하고 있는 상태에서 글 하나(퍼머링크)를 불러온다. 소스보기를 하면 맨 아래쪽에 페이지를 생성하는데 걸린 시간이 출력된다. 디비쿼리 숫자나 걸린 시간은 호스팅환경이나 문서의 양, 플러그인등의 많은 변수에 따라 블로그마다 다를 것이다. 아무튼 이것을 10번 반복하여 시간을 기록하고 평균을 냈다.
  2. 한글 언어파일을 사용하지 않고 그냥 영어로 메세지를 출력하도록 했다. 이 또한 10번 반복하여 시간을 기록하고 평균을 냈다.
  3. 새로 배포된 gettext.php와 streams.php 파일로 대체시킨 다음 다시 시간측정, 평균내기.
  4. 약간의 시간단축이 더 있다고 하는 wp-l10n.php 파일까지 수정한 다음 다시 시간측정, 평균내기.

결과는 매우 놀라웠다.

워드프레스 속도체크
한글로 사용할 때, 그러니까 여태까지 사용해온 것은 사용자의 요청을 받아 디비에서 긁어다가 테마와 결합하여 화면에 출력할 페이지를 만들어 내는데0.343 초가 걸렸다. 느린지 빠른지 모르고 여태까지 써온 방법이다.
영문판, 즉 언어파일을 사용하지 않고 워드프레스 기본 배포판대로 사용했을 경우에는 0.107초로 3배 이상 빨리 페이지를 만들어냈다. 화면에 표시할 특정한 영어 메세지를 언어파일에서 찾아서 대체시켜줘야하니까 어느정도 시간이 추가될 것이라는 것은 예상할수 있지만 3배가 더 걸린다는 것은 뜻밖이다. (실제 방문자가 자신의 브라우저에서 화면을 보는데까지 걸리는 시간은 이 만들어진 페이지를 전송하여 브라우저가 해석하여 화면에 뿌려줘야하므로 사용자의 PC사양, 인터넷 환경, 서버쪽의 컴퓨팅,회선 환경에 따라 차이가 있고, 글 본문에 이미지가 포함되어있을 경우 이미지 파일의 크기나 다른 서버에 있는 파일이라면 그곳과의 연결상태등에 따라서도 차이가 난다. 따라서 방문자가 느끼는 이른바 “사이트가 빠르냐 느리냐’의 문제에서는 크게 차이가 나지 않을수도 있다. 즉 방문자에겐 3배의 차이가 아니라 0.2초의 차이라는 말이다.)
gettext.php와 streams.php 를 새버젼으로 바꿔넣었더니 바로 눈에 띄게 속도가 빨라졌다.
마지막으로 wp-l10n.php 까지 수정했더니 빨라진 것에서 15%정도 더 빨라졌다. 이것을 알아보기 쉽게 그래프로 표현하면 아래와 같다. 그래프의 길이는 시간축이므로 길이가 짧을수록 빠르게 페이지를 만든다는 뜻이다.
속도테스트 그래프
자… 눈이 @.@ 이렇게 되고 입에서 “허거덩” 소리가 새어나왔다면….. 바꾸어보자 -_-;
먼저 새 버젼의 gettext.php와 streams.php로 바꾼다. 당연한 말이겠지만 기존의 파일은 반드시 백업을 받아놓고 시작하자.

  1. 원래 현재 페이지는 몇초 걸리는지 미리 소스보기를 해서 적어놓는다.
  2. 워드프레스가 설치된 디렉토리(이하 $WP) 아래/ wp-includes/ 로 간다.
  3. cp gettext.php gettext.php.bak 로 원래 파일을 보관한다.
  4. cp streams.php streams.php.bak 원래 파일을 보관한다.
  5. http://savannah.nongnu.org/download/php-gettext/에서 php-gettext-1.0.3.tar.gz 를 다운로드 받는다.
  6. 서버에 올려서 tar zxvf php-gettext-1.0.3.tar.gz 로 풀어서 $WP/wp-include/. 로 복사를 해도 되고 PC에서 winzip으로 풀어서 gettext.php와 streams.php 만 올려도 된다. 이 작업만 해도 상당한 속도의 향상이 있다.
  7. $WP/wp-includes/wp-l10n.php 의 69번째 줄 근처에서 $input = new FileReader($mofile); 를 $input = new CachedFileReader($mofile); 로 고친다. (이 경우도 백업 필수)
  8. 패치가 끝난뒤 얼마나 빨라졌는지 1번에서 기록한 시간과 비교해보고 행복과 뿌듯함에 “으하하하하…” 웃으며 주먹을 불끈쥐어주면 감동 두배.

(주의 : 배포판의 파일을 수정할 경우 버그가 생기거나 오작동할 수 있으며 나중에 워드프레스의 공식 업그레이드를 적용할때 애로사항이 꽃필 수 있다. )

8 thoughts on “워드프레스 속도향상

  1. Pingback: ZLBL!

  2. mylook

    한글 언어팩을 적용했을때 운영자 페이지가 정말 빨리 열리는게 늦겨져서 기뻐써요
    (저는 그냥 영어로 나오는 디폴트를 사용중이에요 1.5 이전버전을 사용해서… 한글이 나오면 어색해요)

  3. Pingback: こもれび

  4. Pingback: 살며 사랑하며… » Blog Archive » 워드프레스 각종 팁

  5. Pingback: My Log » 워드프레스 속도향상

  6. Pingback: my_mini_Life » 워드프레스 변경 사항

  7. Pingback: Daybreakin Blog » Blog Archive » 속도 업!

  8. Pingback: kukie » WordPress 워드프레스

Comments are closed.