Via Gregor's del.icio.us feed, I found the xslcache extension for PHP published by the geeks at The New York Times, based on the original xslt extension. It caches the parsed XSLT stylesheets into your apache child memory (shared memory is on the todo list) and reuses it at the next request. This is something I wanted to do since a long time, but never did find the time for it. As - depending on the size of your stylesheets - the importing of XSLT stylesheets may take a considerable amount of time, this extension may really improve your website's performance. Many thanks to the NYT for publishing this. If I find the time some day, I will look more closely into it and check, if this could be integrated somehow into the mainstream xslt extension. Or if anyone else feels like it: Patches are welcome :)
There's also another interesting looking PHP extension worth checking out there: DBSLayer.
After PHP 5.3 was branched (for making place for - among other new stuff - namespaces), it was finally time to put my XSLT profiling addition into the official PHP sources. From now on, if you check out the PHP_5_3 (or 6) sources, you'll be able to profile your XSLT transformations. The patch for PHP 5.2 is still available here.
XSLT transformations are usually quite fast and the libxslt/libxml2 combo used in PHP is one of the fastest around. But you may have experienced that quite a lot of time of a script is spent in importing the stylesheet, especially if your stylesheets are big. As this is basically always the same and one could reuse those imported stylesheets, the question pops up from time to time, why this potential reuse isn't possible across different requests. I'd say it would be technically feasible within PHP (with some shared memory like APC uses it), but the work to do this, scares me (besides a lot of potential additional issues involving such a setup).
Ever wanted to know where your XSLT transformations spend most of their time? Look no further than this patch to the PHP XSL extension. It uses the built in profiler of libxslt to get the information which template was called how many times and how much time was spent in them. It may help in improving the speed of your XSLT transformations, like a PHP debugger can help in profiling your PHP scripts.
Just added a new feature to the PHP DOM extension (will be available in PHP 5.2): DOMNode::getNodePath