Task #48837

Up to 100% performance loss since TYPO3 4.5

Added by Norbert Sendetzky over 8 years ago. Updated about 3 years ago.

Status:
Closed
Priority:
Should have
Assignee:
-
Category:
-
Target version:
-
Start date:
2013-06-04
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
6.2
PHP Version:
5.3
Tags:
Complexity:
Sprint Focus:

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.

#1

Updated by Dmitry Dulepov over 8 years ago

RealURL is independent from the TYPO3 version. It operates the same way in all versions. RealURL uses the API from the core. If the core became slower, so RealURL processing will be slower.

RealURL is not relevant here.

#2

Updated by Alban Cousinie over 8 years ago

Edited : I am not so sure my performance problems are typo3 related anymore. Still investigating....

#3

Updated by Norbert Sendetzky over 7 years ago

As TYPO3 6.2 is now out in the wild, I've done the same tests for that version. The results show a speedup of ca. 30% compared to 4.5 which was leading the ranking up to now as long as the pages can be cached. Great job! :-)

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      6.2
/ +cache/+RealUrl 131ms 141ms 158ms 242ms 97ms
/ -cache/+RealUrl 405ms 432ms 524ms 596ms 925ms
/ +cache/-RealUrl 126ms 140ms 165ms 247ms 96ms
/ -cache/-RealUrl 386ms 412ms 493ms 570ms 830ms

The response time of TYPO3 6.2 sites is fantastic compared to early versions, especially 6.1 as long as the page is cached. If not there's a huge additional speed penality, so keep care that your pages can be all cached!

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      6.2
/test +cache/+RealUrl 150ms 162ms 190ms 275ms 107ms
/test -cache/+RealUrl 409ms 433ms 518ms 600ms 718ms
/id=? +cache/-RealUrl 128ms 134ms 156ms 253ms 107ms
/id=? -cache/-RealUrl 373ms 393ms 474ms 552ms 643ms

The content on the root page of the TYPO3 6.2 introduction page seems to need more time for rendering if it can't be retrieved from the cache. On an empty new page, the non-cached render times for 6.2 are more than 20% less but still much more than for all earlier version.

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      6.2
/test +return/+cache/+RealUrl 313ms 319ms 347ms 450ms 214ms
/test +fluid/+cache/+RealUrl 345ms 331ms 370ms 464ms 235ms
/test +return/-cache/+RealUrl 520ms 534ms 624ms 729ms 803ms
/test +fluid/-cache/+RealUrl 561ms 548ms 652ms 754ms 820ms

Also when placing the extbase/fluid extension to the test page, 6.2 outperforms all earlier TYPO3 version as long as the page is cachable. If not the performance hit is even higher than in 6.1.

#4

Updated by Simon Schaufelberger over 7 years ago

can somebody explain why the non cached rendering is so much slower in 6.2 than in 4.5? that would be really interesting.

#6

Updated by Mathias Schreiber almost 7 years ago

  • Status changed from New to Resolved

well.. I know.. performance is not really ever "resolved" but we keep on pushing.
Right now CMS7 performance is better than 4.5 on cached pages, but we're not done yet :)

#7

Updated by Benni Mack about 3 years ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF