The topic was performance optimization. It's pretty clear from his talk that Rasmus knows his stuff when it comes to performance at every level - system, network, PHP executor, etc.
A few key takeaways:
1) You have to be aware of the cost of "features" (i.e. functionality on a web page), in terms of how long it's taking to load those features.
- As a rule-of-thumb if your pages load in less than 500ms then that's good enough. (That's the standard that Yahoo sets for itself internally) More than 1s is dismal.
2) You can't understand the performance tradeoffs of a given feature without some tools to profile and display what the application is doing.
- A few helpful tools:
a) YSlow - Firefox/Firebug add-on that grades (A-F) the performance of a web page your visiting. (Provides practical recommendations for improvement)
b) PageSpeed - Google equivalent
c) Siege - benchmark tool to measure how long it takes your server to respond to a request.
- Key parameters to look at: "Response time" & "Transaction Rate"
d) APC - enable APC to perform bytecode caching of your PHP and get an instant boost in performance. (Get APC from PECL)
e) Valgrind - Rasmus' most recommended tool! He says they don't release a PHP version without it. Use Callgrind subtool to view graphical version of code execution profile. Very cool!
f) XDebug
Rasmus walked through a few example cases of characterizing the performance of a simple WordPress blog and a Twitter aggregator he wrote. He also demonstrated that an APC-enhanced web app (Twitter aggregator) ran faster than the same application compiled into native code by Facebook's HipHop compiler. (HipHop converts PHP into C++, then compiles it into native code to optimize for performance) He walked through all of the tools' analysis data to narrow down the reason for the HipHop version of the application being slower. (It turned out to be a single issue with time zones getting resolved on every HTTP request) Even with that fixed, performance was still at parity.
For more detail visit http://talks.php.net/show/dojo where Rasmus has posted his slides. (There's also lots of other good presentations on other topics he's got up there! By the way, Scott, Rasmus has a presentation up there on security - maybe you can "leverage" some of that content for our security discussion! see http://talks.php.net/show/flux)
All in all, a very educational talk!
Cheers,
Ivan