Task #48837
closedUp to 100% performance loss since TYPO3 4.5
0%
Description
Hi all
Recently, I've made a performance comparison between the different TYPO3 release series to get some hard facts about performance trends for the upcoming 6.2 LTS release. The results are:
- There's a severe loss of performance when switching from 4.5 to the latest 6.1 release
- RealURL is most likely not the reason for this performance loss
- Initializing a single ExtBase plugin takes very long when compared to the rest of the environment but didn't changed much since 4.5
Test environment:
The test machine was a Thinkpad T400, a dual core Notebook with 2.53GHz and Ubuntu 12.04 with Apache 2.2.22, MySQL 5.5.31, PHP 5.3.10 and XDebug 2.1.0 installed. The TYPO3 introduction packages for 4.5, 4.7, 6.0 and 6.1 were installed locally using the setup wizard with the included extensions (especially RealURL).
The measurement of the request times was done by using Firefox/Firebug. Each test was executed at least six times and the first result was always thrown away so rebuilding the caches wasn't taken into account. From the remaining results per run all results that were 10ms above the lowest result were also thrown away and more request were made until three stable results around the lowest one were measured. This should have removed the influence of different scheduling done by the Linux kernel.
Test case one:
The root page of the introduction packages with and without (no_cache=1) caching and with (tx_realurl_enable=1) and without (tx_realurl_enable=0) RealURL.
TYPO3 version 4.5 4.7 6.0 6.1 / +cache/+RealUrl 131ms 141ms 158ms 242ms / -cache/+RealUrl 405ms 432ms 524ms 596ms / +cache/-RealUrl 126ms 140ms 165ms 247ms / -cache/-RealUrl 386ms 412ms 493ms 570ms
Each line shows an increase of the processing time since 4.5. The increase between 4.5 and 4.7 is moderate but 6.0 and especially 6.1 need significantly more time for rendering the page (50% to 100% more). The required time for RealURL in non-cached pages raised from 20ms in 4.5/4.7 to 30ms/25ms in 6.0/61 which is an increase by ca. 25% to 50% since 4.5. The reasons might be the same as for the increase of the TYPO3 render times.
Test case two:
A newly created sub-page without any content elements with and without (no_cache=1) caching and with (tx_realurl_enable=1) and without (tx_realurl_enable=0) RealURL.
TYPO3 version 4.5 4.7 6.0 6.1 /test +cache/+RealUrl 150ms 162ms 190ms 275ms /test -cache/+RealUrl 409ms 433ms 518ms 600ms /id=? +cache/-RealUrl 128ms 134ms 156ms 253ms /id=? -cache/-RealUrl 373ms 393ms 474ms 552ms
The relative render times are roughly comparable with the results from test case one. The increase between 4.5 and 6.1 is also in the range between 50% and 100%.
Test case three:
A newly created sub-page with an adapted efempty extension. The efempty extension is the only one placed on the page and the called action (non-cacheable) contains only a return statement or the assignment of four values to the fluid view which is rendered afterwards. The tests are with and without (no_cache=1) caching and with (tx_realurl_enable=1) RealURL enabled.
TYPO3 version 4.5 4.7 6.0 6.1 /test +return/+cache/+RealUrl 313ms 319ms 347ms 450ms /test +fluid/+cache/+RealUrl 345ms 331ms 370ms 464ms /test +return/-cache/+RealUrl 520ms 534ms 624ms 729ms /test +fluid/-cache/+RealUrl 561ms 548ms 652ms 754ms
Placing the extbase/fluid extension to the test page took always around 160ms to 175ms when returning the content directly and 170ms to 200ms by using a Fluid template. The difference of using a Fluid template or returning the content directly is around 10ms to 40ms so it's not very significant for such a small template. Things will be totally different when using bigger Fluid templates with conditional statements, etc.