blog.Resource

Archive:

News-Feeds:


RSS 2.0
RSS 0.91
RDF
ATOM 0.3
July 22, 2009

Speed! - Why most lighter things are faster

By: Mathias Schreiber

The first performance meeting was a success - this is what the participants try to achieve:

Dodge Challenger... also fast

Dodge Challenger... also fast

Some weeks ago I called Rupi (Germann) and Joey (Hasenau) and asked whether they were interested in spending a weekend on checking TYPO3's code for performance problems and to go wakeboarding with Rupi's boat.

Later Michael Stucki joined in because in our eyes he's the boss of 4.x development anyways and it would be nice to meet again, since we only see each other on the regular events.

Joey and I arrived on friday and spent the night with tracing performance problems through the frontend while having Ben on Skype in order to find some more diplomatic ways to write down our results.

Stucki arrived on saturday morning and after breakfast we sat down and checked what else can be done.

We identified three major parts that drew our attention:

  • Reducing unneeded database queries
  • Reducing loading overhead
  • Reducing the amount of small checks throughout the core

We used Rupi's testing environment for all patches and ran all tests several times so we could get clean numbers on how these patches affected the performance of the current 4.3 trunk.

Some fun facts:

  • Including classes takes an tremendous amount of time (more than 20% of the full request time)
  • Only 3% of this information is actually needed
  • TYPO3 loads very much information at every request although it isn't needed
  • after including our patches we came up with a 33% increase in speed (for cached pages though)

Some of our patches are pending in the core list right now and we hope to get them included in 4.3.0, so heavy testing is highly appreciated.

Outlook:

These are the things we plan to do within the next few meetings:

  • Introduce t3lib_essentials (a rip-off of t3lib_div) that brings only the most neccessary functions to deliver cached pages
  • Load only the most neccessary config needed in the frontend (only parts of the TCA etc.)
  • Reduce the number of duplicate database calls to zero (if only... :))
  • Massively reduce the size of $GLOBALS
  • Stay backwards compatible - which is quite tough
  • Check things once
  • Supply performance related documentation (maybe even CGL)
  • Supply a testsite that features:
    • Typoscript
    • Cached and uncached pages
    • Transparent user logins
  • Supply documentation on:
    • Setting up a testing server
    • Setting up siege
    • Setting up xdebug and kcachegrind
    • Explaining how to read cachegrind (since it looks like some 1971 LSD trip when you first look at it)
    • Explaning how to read numbers
  • Make developers aware that performance DOES matter

As with most things in open-source development 4 people are only a start - help is highly appreaciated and actually, it is much easier to help than you might think.
So no matter if you are a designer, doing Typoscript all day, an extension developer or a member of the core team... jump in, help out!


cheers
Mathias


comments

comment #1
Gravatar: bartosz aninowski bartosz aninowski July 22, 2009 15:19
This is the best post I read today! I waited for this for a long time. We are ready to help, test, benchmark etc :)

comment #2
Gravatar: Kay Strobach Kay Strobach July 22, 2009 17:21
That's great, go on optimizing ;)

comment #3
Gravatar: Michael Cannon Michael Cannon July 23, 2009 04:19
Thanks for the direction this work is taking. It'll be great to see our sites speeding up a little more.

comment #4
Gravatar: Oliver Leitner Oliver Leitner July 24, 2009 11:17
finally! i was waiting for this for a long time, maybe typo3 gets finally usable on a larger scale:)

comment #5
Gravatar: Pim Broens Pim Broens July 26, 2009 22:57
That's some great research. We can all benefit from a faster TYPO3. Keep up this good work!

comment #6
Gravatar: venlix venlix July 27, 2009 10:20
Great news. A performance boost can make us all a bit happier.

comment #7
Gravatar: Michiel Roos Michiel Roos August 4, 2009 22:02
Excellent!

Ping me when you need testers!

:-)

comment #8
Gravatar: Michael Michael August 18, 2009 00:23
33% is really really much! I like your work.

comment #9
Gravatar: Luca Luca August 18, 2009 17:59
Great post!
Let the performance boost!
Good work guys and good luck!

Sorry, comments are closed for this post.