비교항목
- 용도
- 수행속도
- 소스코드 크기
- 템플릿 파일 형식
- 공개여부
- A/S 수준
이 외에도 비교할 수 있는 항목으로는 가독성, 코드 작성의 편의성, 각 툴의 장단점 등이 있겠으나 이러한 항목은 개인에 따라 평가 결과가 전혀 다를 수 있기 때문에 여기서는 비교하지 않았으며, 필요하면 여러분이 직접 비교해 보고 "후키라이브러리 Q/A" 게시판에 의견을 주시기 바랍니다. 그러면 제가 나중에 그것을 기반으로 하여 정리하여 보겠습니다. VH layout은 공개용과 상용의 두 가지 버전이 있습니다. 여기서 비교하고 있는 버전은 공개용입니다.(제가 돈주고 사면서까지 실험할 수 없는 고로 이해하시길...)
수행속도
수행속도는 서버 상에서 스크립트가 시작되는 시간부터 종료되는 시간까지 소요되는 시간을 초단위로 나타내었습니다. 이 때 사용되는 벤치마킹용 함수는 FastTemplate 내에 포함된 클래스의 메소드 utime()을 이용했습니다. 아래에 각 툴 예제소스에 포함된 벤치마킹 소스를 나타내었습니다.
[code php;gutter:false]
<?php
function utime () { // Benchmarking
$time = explode( " ", microtime());
$usec = (double)$time[0];
$sec = (double)$time[1];
return $sec + $usec;
}
$start = utime(); // 시작시간
//
// 이 부분에 각 페이지툴의 예제 소스코드가 있습니다.
//
$end = utime(); // 종료시간
$runtime = $end - $start; // 소요시간
echo "Completed in $runtime seconds\n";
?>
[/code]
수행속도에 나타난 수치는 각 툴 사이의 상대적인 비교 값으로만 참조하시기 바라며, 또 한가지 주의할 것은 수행속도가 서버 상에서의 비교한 수치이기 때문에 실제 인터넷상에서 느끼는 속도하고는 전혀 다르다는 것을 이해해 주시기 바랍니다. 즉, 서버의 수행속도보다 네트워크의 전송속도가 훨씬 느린 게 현실이며, 최종 방문자가 느끼는 속도는 서버의 속도보다는 네트워크의 전송속도에 의해 거의 결정된다고 생각됩니다.
수행속도 측정은 두 가지 환경에서 실험했습니다. MySQL과 Apache는 두 환경에서 동일하고 PHP버전만 다릅니다.
- 첫 번째 환경 - PHP 3.0.14
- 두 번째 환경 - PHP 4.0.4
소스코드 크기
여기서 표기된 소스코드 크기는 페이지툴만 포함시킨 것으로, 사용자가 작성해야 하는 템플릿 파일 또는 PHP 코드는 제외시켰습니다. 따라서 페이지툴에 따라 템플릿 파일 또는 PHP 코드의 크기가 차이가 있을 수 있음을 염두에 두시기 바랍니다.
기타
VH layout 예제를 제외하고 나머지는 전부 제 홈페이지에서 생성되는 HTML 태그를 모델로 하여 예제를 작성하였습니다. VH layout은 함수로 복잡한 레이아웃 구조를 표현하기가 쉽지 않아 제 홈페이지의 HTML 소스 대신에 VH layout에서 받은 예제를 거의 그대로 하여 예제로 올렸습니다. FastTemplate에는 다이내믹 블록이라는 고급기능도 있으나 이를 사용하지 않고, 단순히 템플릿 변수를 치환하여주는 기능만을 사용하였습니다. 이런 저런 이유로 각 툴에 대한 예제 자체에 저의 편중된 시각이 의식적이든 무의식적이든(고의는 아니지만) 내재되어 있음을 염두에 두시고 아래의 비교 데이터를 참조하시기 바랍니다.
비교 데이터
구분 | FastTemplate | VH layout | UnitTable 0.1.3 | UnitTable 0.2.0 | HTML |
---|---|---|---|---|---|
용도 | 템플릿툴 | 레이아웃툴 | 템플릿툴 + 레이아웃툴 | - | |
수행속도(PHP3) | 0.161sec | 0.527sec | 0.816sec | 0.330sec | 0.010sec |
수행속도(PHP4) | 0.096sec | 0.254sec | 0.310sec | 0.164sec | 0.002sec |
소스코드 크기 | 16KB (752라인) |
23KB (959라인) |
25KB (1030라인) |
22KB (770라인) |
- |
템플릿 파일 형식 | HTML 태그 (file()) |
- | 텍스트파일 (fopen()) |
텍스트파일 (file()) |
- |
공개여부 | 공개용 | 공개용/상용 구분 | 공개용 | - | |
A/S 수준? | 책임감 있는 웹사이트라고 생각함 | 상용까지 제공하고 있으니 Upgrade가 잘 될 거라고 추측됨 | 전 아마추어예요. 따라서 A/S 보장 못해-앵 | - |
유닛테이블 0.1.3 對 0.2.0
위에서 비교한 유닛테이블의 수행속도는 MySQL용 미니디비 0.2.2를 기본으로 사용하였을 경우의 속도를 나타냅니다. 이 때의 유닛테이블 실행속도를 보면, 0.2.0버전이 0.1.3 버전에 비해 1.9배(PHP4)~2.5배(PHP3)가량 빠르게 향상되었습니다.
'phpsource > 템플릿' 카테고리의 다른 글
{후키템플릿}7.4.URL 리디렉션 (0) | 2002.01.28 |
---|---|
FastTemplate 1.1.0 (0) | 2000.08.06 |
{유닛테이블}14.DB Layer에 접속하는 방법 (0) | 2000.08.06 |
{유닛테이블}13.기본 메소드 (0) | 2000.08.06 |
{유닛테이블}12.템플릿상수 & 변수 (0) | 2000.08.06 |