Мысль такая: сделать Smarty одним (большим) файлом.
Проверить экспериментально сам не смог. Ни для Smarty2, ни для Smarty3. Несколько раз начинал, но потратив некоторое кол-во времени бросал.
Что, если полностью избавиться от include? Все функции и классы будут в одном файле. Не будет сотен лишних инклудов. Будет всего один файл в виде оп-кода внутри кэша APC/XCache/eaccelerator и проч.
Даст-ли это прирост в производительности? Google молчит или я неправильно ищу.
Никого не слушайте, выигрышь есть. Правада, если только опкод-кэшер не хранит весь код в памяти, что бывает не так часто. У нас, когда винт начал захлебываться и процессор постоянно простаивал в iowait, мы началачи производить оптимизацию методом сливания и подпихивания «компиленных» библиотек из одной папки на все студийные проекты. Результат на лицо.
На трех тысячах файлов даже с отключенной проверкой времени модификации выигрышь при сливании есть. Тем более, когда на серваке крутится около полусотни проектов.