Strict Standards: Non-static method Soojung::addReferer() should not be called statically in /home/lifthrasiir/sites/sapzil.info/soojung/settings.php on line 79

Warning: Cannot modify header information - headers already sent by (output started at /home/lifthrasiir/sites/sapzil.info/soojung/settings.php:79) in /home/lifthrasiir/sites/sapzil.info/soojung/classes/Counter.class.php on line 63

Strict Standards: Non-static method Entry::getEntry() should not be called statically in /home/lifthrasiir/sites/sapzil.info/soojung/entry.php on line 51

Strict Standards: Non-static method Soojung::entryIdToFilename() should not be called statically in /home/lifthrasiir/sites/sapzil.info/soojung/classes/Entry.class.php on line 182

Strict Standards: Non-static method Soojung::queryFilenameMatch() should not be called statically in /home/lifthrasiir/sites/sapzil.info/soojung/classes/Soojung.class.php on line 55
TokigunStudio3 | 블로그: soojung 속도 문제

내용으로 바로 넘어 가기


TokigunStudio3

228 / 3282   


더 이상 이 블로그는 운영되지 않습니다. 새 블로그로 가 주세요.

soojung 속도 문제

2004/11/18 PM 09:10 | 개발/soojung | 0 comments | 0 trackbacks | AllBlog: vote, to pocket

soojung 0.3.x는 파일 형식이 바뀌면서 entry 파일명에 카테고리 힌트가 사라졌고, (이게 win32에서 utf-8로 저장하면 U+0080 이상의 글자는 모두 깨져 버리는....) 덕분에 모든 entry 파일을 하나 하나 뒤져 가면서 카테고리 분류를 하는 개삽질-_-을 한다. 포스트 수가 100개만 넘어도 이 속도 차이는 눈으로 보일 정도인데, 간단한 테스트를 하면 도대체 얼마나 느려 터졌는 지 알 수 있다.

1. 다음 코드를 settings.php 맨 첫줄 <?php 바로 다음 줄에 추가한다.
function ptime() {
    static $t = array(0, 0);
    $n = explode(' ', microtime());
    $p = $n[1]-$t[1] + $n[0]-$t[0];
    $t = $n;
    return $p;
}
ptime();


2. 템플릿 파일에서 footer.tpl을 찾아서 맨 끝에 다음 템플릿 태그를 넣어 준다. (</html> 뒤에 넣어 주면 된다.)
<-- time: {php}echo ptime();{/php} sec. -->

3. 페이지 끄트머리의 주석을 잘 살펴 보라.

...이 블로그는 6초 안팎 나온다. orz 근데 프로파일링을 대충 해 보면 알겠지만, {$category->getEntryCount()}만 빼도 속도가 2배로 향상된다. -_-;;;;;;;;;;; (다른 부분 프로파일링도 해야 하는데 귀찮군....) 아무튼 이걸 해결하는 방법은 대충 이렇다.

- 0.2.x 파일명 규칙과 같이 카테고리 힌트를 파일명에 집어 넣는다.
- 단, 0.2.x에서 win32 utf-8 문제 같은 걸 피하기 위해서 적당한 hash 값으로 변환해서 집어 넣는다. (32비트 -- 16진수 8자리 -- 면 충분할 것 같다.)

간식 먹고 구현해 보자.

TrackBack URL: http://sapzil.info/soojung/trackback.php?blogid=203

Copyright (c) 1995-2005, Kang Seonghoon (Tokigun).