Hi everyone,
Matthew said:
Also, please remember that these are done without any caching --
opcode or content.
Opcode caching is turned on, per the methodology outlined in the
earlier reports, which I recommend everyone read:
* <http://paul-m-jones.com/blog/?p=236>
* <http://paul-m-jones.com/blog/?p=238>
(I refer to those reports at the very beginning of the latest article.)
The opcode cache is XCache. The reason for this is that I originally
did some comparisons with Lighttpd+FCGI and Apache+mod_php, and APC
did not play well with FCGI at the time.
Regarding content caching, 2 points:
1. A full-page static cache will give responsiveness equal to the web
server, so it's not a measure of the framework. We already know how
fast the web server responds (2300 req/sec) and it will be identical
for any framework that can cache a full page.
2. A view cache, in the minimal "hello world" case, is likely to take
*longer* respond than simply presenting the view as-is. This is an
intuitive hypothesis, not a tested assessment; here is my reasoning.
The view cache isn't activated until after you go through the
bootstrap, front controller, page controller, and action method; then
you need to load the cache object, check to see if the cache exists
and is valid, and then return that. That's as opposed to an action
with no logic that goes directly the to view script, which itself is
static text only.
They are meant as baseline comparisons only -- what is the base
performance of each given framework.
This is correct. The tests measure the outside limits of
responsiveness.
Karol responded:
Anyway, this only shows that some frameworks are better optimized to
display "hello world" than others.
This is **not** correct. Every line of application code added to the
dispatch cycle will only reduce performance, so when you are
attempting to improve the speed of your application, these results
show exactly how much room for improvement you have. This is not an
assessment of "hello world" optimization, it is an assessment of the
maximum responsiveness of the framework architecture, specifically the
dynamic dispatch cycle (bootstrap, front controller, page controller,
action, and view).
There will be plenty of chances to improve ZF performance,
but so far focus seemed to be on adding features.
There is no such thing as a free feature; adding features that impact
the dispatch cycle will continue to reduce baseline responsiveness.
This has been the case across all the tested systems, not just ZF.
--
Paul M. Jones
http://paul-m-jones.com/