Hi,
hast bei Smarty auch das Caching aktiviert? Eigentlich ist Smarty für die Komplexität der Engine sehr schnell, da die Templates aus Performance-Gründen vor der Ausführung zunächst in Pre-Code (PHP) umgewandelt werden. Das rentiert sich natürlich erst ab dem zweiten Request, wenn die Seite aus dem Cache geholt werden kann.
Tipp: im PEAR gibt es noch einige andere Engines von guter Qualität für unterschiedliche Zwecke, die evtl. schneller als Smarty sind.
Eigentlich wirkt sich jede nicht direkt in die Programmiersprache implentierte Template-Engine mehr oder weniger schlecht auf die Gewindigkeit aus, da Dateien eingelesen, geparst, Ersetzung vorgenommen und evtl. noch Schleifen durchlaufen werden müssen. Sind die Anweisungen dafür in PHP codiert und basieren auch noch auf objektorientierter Programmierung, hat bereits der Interpreter einiges zu tun... Die schnellste Engine überhaupt kann also nur in C oder besser noch Assembler direkt programmiert werden...
Wenn Dir Performance wirklich so wichtig ist, Du aber keine aufwendige Lösung programmieren oder lange nach einer solchen suchen willst und eigentlich nur wenige Funktionen brauchst, verzichte besser komplett auf eine spezielle Engine.
In PHP kannst Du Template auch etwa so umsetzen. Die Datei bindet man dann mit Include ein, um Logik und Ausgabe zu trennen:
index.php:
include 'templates.php';
$html = "";
$html .= start_html('Mini Template', 'Das ist ein sehr simples Beispiel');
// etc.
$html .= end_html();
print $html;
templates.php:
function start_html($v1, $v2)
{
return <<< _END_
<html>
<head>
<title>$v1</title>
</head>
<body>
<h1>$v2</h1>
_END_;
}
function end_html()
{
return <<< _END_
</body>
</html>
_END_;
}