글쓴사람 쿨한또리
글쓴시간2003년 11월 17일 오후 6시 57분 6초
    제목Quick Template를 사용하다가.. Template_로 테스트하구
제목 그대로 전 지금까지 Quick Template를 사용했었습니다.
이거또한 상당히 유연하고.. 루프문..
그리고 추가로 캐시를 이용해서.. 나름대로 속도가 빠를꺼라고 생각을 하고
사용했지만.. 혹해서..
우편번호 검색을 조금응용해서 전체 우편번호 리스트를 출력하도록 수정하고
Template_에 적용하여 두개를 비교해 보았습니다.

런닝타임... 단위(초)
Quick Template
38.236
38..095
36.780

Template_
4.136
3.150
2.109

======== ㅠㅠㅠ 허거걱~~~ 정말 놀랬습니다.
우편번호 데이타 44000건을 출력하는데 Quick Template는 평균 37초인 반면
Template_는 3초안밖.. 눈을 다시 비비게 됩니다.. 믿기지 않습니다..
정말 대단합니다.. 제가 정말 우물안에서만 놀았군요.. ㅠㅠ
이전에 Fast Template도 사용해 보았지만.. Quick Template랑 속도가 별차이가
없었고.. 그에 비해 사용이 편리하고 중첩루프도 지원하고 해서 Quick Template를
사용했었는데.... 정말 놀랬습니다..
사용법도 나름대로 다양하고.. 프로그램에서 처리하던 조건부분들두
템플릿기능에 들어있구.. 정말 실로 너무너무 놀랐습니다.

오래전부터 Template_를 알고는 있었지만. 쉽사리 바꾸기도 쉽지않을거 같아서..
테스트를 미루어 왔었는데...
이번에 해보구선.. 정말 이템플릿 엔진으로 바꿔야 겠군요..

님 정말 대단하십니다..
존경 스럽습니다..
앞으로도 꾸준한 업데이트 부탁말씀 드리며.. 정말 좋은 정보, 소스 감사드립니다.

추가로 질문이 있는데요...

1)설정변수중에서 $template_dir, $compile_dir 는 각 프로그램별로 설정하는게 맞지만
(* 제가 말씀드리는 프로그램이란 회원관리, 게시판, 상품관리. 등등... 별개의 프로그램 패키지)
$cache_dir 설정의 경우 패스를 같게 설정하면 문제가 발생할 소지가 있는지요?
2)그리고 캐시를 사용하면 어떤부분이 향상되며 또 속도가 향상된다면 어느정도
향상이 되는지..?
3) 템플릿 변수 및 루프변수는 대소문자를 구분하는지요?

참고) Quick Template 개발자 주소 및 프로젝트 주소
http://quicktemplate.sourceforge.net/
http://sourceforge.net/projects/quicktemplate/
관리자 쿨한 또리님 안녕하세요.

혹시 싶어 직접테스트하고 출력확인까지 해봤는데 비슷하게 나오네요. 테스트하는게 꽤나 번거로운 일인데 수고많으셨습니다. 칭찬 감사하구요 모든 아이디어를 제가 고안한 것이 아니라 좀 민망하네요.

1)

템플릿디렉토리는 여러가지 상대경로로 잡혀있고 캐쉬디렉토리는 하나의 절대디렉토리에서 관리될 경우에도 충돌하지않도록 조치되어 있습니다. 그렇지만.. 템플릿디렉토리 변환디렉토리 캐쉬디렉토리 모두 하나의 절대경로를 기준으로해서 사용하는게 편한 거 같네요 레퍼런스에서 환경설정 2 참고하세요.


2)

캐쉬가 적용된 코드는..

if (!$tpl->isCached('main')) {

   // 디비연결등 부하가 많은 부분

}
$tpl->print_('main');

대충 이런 모양이 되는데.. 캐쉬가 유효하다면.. "// 디비연결등 부하가 많은 부분" 의 실행이 생략되고, 만들어져 있는 출력텍스트를 그냥 읽어서 출력하게 됩니다. 최소 5 배 이상.. 디비튜닝이 잘 안되어 있다면 수십 수백 배 이상 차이날 수 있을 거 같네요. 단, 코딩하기가 번거롭고, 항상 적용가능하지는 않습니다.

3)

네이밍규칙은 자바스크립트문법을 따르니까 대소문자구분합니다.
03-11-17 22:44
관리자 Now your pages structure is stored in some binary cache files and your templates will be parsed just first time. The cache file system keep the date and time of the file modification, and will detect any cahnches in your templates and will regenerate the cache for this template. This was the first level of our cache system.
On a second level, all static textes (like long paragraphes) which doesn't contains block, sub-block or variables, are stored in a pre-cache files will be added to your template when the parsing is done or before printing your results.

퀵템플릿은 일단 템플릿 컴파일방식은 아니구요. 특이한 점이 더블캐쉬인데, 한 가지 캐쉬는 serialize() 를 이용해 퀵템플릿이 좀 더 빨리 파싱할 수 있는 코드로 변환파일을 만들어 저장하는 기능이고, 두 번째 캐쉬는 템플릿언더바의 템플릿정적인클루드와 같은 기능이네요. 그러니까.. 위 코멘트에 설명한, 결과물을 텍스트로 저장했다가 출력하는 캐쉬기능은 없는 거 같습니다. 퀵템플릿의 캐쉬들은 기본적으로 작동하는 것이어서 쿨한또리님의 테스트에 잘 반영되어 있구요. 무슨 이유로 이 템플릿에 관심을 갖게 되셨는지 모르겠지만, 독특하긴 해도 그다지 참고할만한 내용은 발견하기 어렵네요.
03-11-17 23:07
    이름
비밀번호
 
Since 2003-03-03 hosted on vultr.com