Warning: Boring web-dev stuff and bland benchmarks ahead:
A forest-thru-the-trees moment hit me yesterday. I was in that page editing cadence of | tinker / refresh | tinker / refresh | tinker / refresh | leveraging the page reload moments to reflect on my tinkering changes, when I realized I had more time to reflect than I should.
I fired up ApacheBench and ooopsie, that ain’t right. Some quick comparisons, nothing fancy, just ab -n20:
- WordPress, lots of content (awareon.ca), caching on: 41.171ms
- Concrete5, basic test page, caching on: 1587.022ms — *Ouch!*
- Page-specific PHP-coded, no caching: 2.913ms
Now this isn’t meant as any sort of great criticism. I’m told that Concrete5 favours opcode caching, which is currently off on my humble server (Why? It’s been a pain in the arse and I’ve got a relatively low RAM ceiling). WordPress on the other hand benefits well from page-based caching. WP Super Cache works very well, without it WordPress would climb into the 1s range too.
The thing is, for a moment there– just a little moment– I wondered if I should just code from scratch instead of leveraging a CMS. That thought sparked and I couldn’t take it back: I enjoyed it.
Uh-oh, a happy thought on web-development? Couldn’t be. So I forced myself to look at my options for resolving Concrete5′s poor performance on my wee little server. The angel on one shoulder was saying “get it done, use the CMS” but the devil was just smiling and didn’t need to say a word.
The devil won. I’m going to spend a bit more time on this web-dev stuff because I’d like to get it done my way. Efficiently, directly and the damned wrong-headed hard-coded way, if necessary.