I am considering Smarty as my web app templating solution, and I am now concerned with its performance against plain PHP.
The Smarty site says it should be the same
Based on my own experiences and informal benchmarks, Smarty doesn't by itself cause any major performance reductions. However, when you get into writing custom plugins, things go downhill.
A Smarty template is compiled & cached as PHP, but a custom plugin is always loaded and executed at runtime and is always slower than running the same code in a plain old PHP file. You're not going to notice this too much with a custom string formatting plugin, but you'll definitely see it when doing database queries in a plugin.
Overall, I highly recommend Smarty. Getting the display out of the PHP has made our code so much more readable and maintainable. You just have to make sure you're careful about what you put in plugins.
There is a drop in replacement for Smarty called Template Lite which is much more lightweight in respect to the library file size. That said, I have used the original Smarty in some extremely high load situations without needing to swap in this library.
It depends on how you use Smarty because the flow of your pages can change
Classic plain PHP flow:
Classic Smarty flow:
If plain PHP took 1.0 sec for this page the Smarty page also takes 1.0 sec. BUT if we assume that all database and $_request handeling takes 0.7 sec. The plain PHP starts output directly while the Smarty version starts outputing after 0.7 sec. Therefor the browser can start downloading stylesheets and images faster. No output also means the "Stop" button has no effect.
However in Smarty you can call functions and methods from within the template. Delaying the slow part to where the data is needed.
Here a template engine benchmark that tests PHP vs Smarty and many more template engines http://www.raintpl.com/PHP-Template-Engines-Speed-Test/
For assignment Twig is the faster, it compile the html template to a classes, so it's also faster in executing more than the PHP include! IMHO is heavy (many files) and complicate, but is very fast!
For looping the faster is the PHP include, and soon after there's Rain which is very easy, small (1 file) and fast.