FAQ

[Catalyst] Database access benchmarks for use in web-frameworks - How does Perl compare?

Kieren Diment
Nov 3, 2011 at 8:10 pm

On 03/11/2011, at 10:00 PM, Tobias Kremer wrote:

Hi Alec,
On Thu, Nov 3, 2011 at 11:42 AM, Alec Taylor wrote:
Are there recent accessible statistics available, comparing these
metrics across the most popular web-frameworks? (i.e. Symfony, DJango,
Rails, ASP.NET &etc)
There's one catalyst site in the adult industry sector which has an alexia rank of 81. To the best of my knowledge they don't have to use excessive hardware, or use baroque framework customisations to serve pages effectively. The BBC iplayer is another very high traffic site that achieves similar scale (it might even have more traffic than the adult site).

On the other end, I have a single user data analysis app that is quite fast and responsive, even though its data model does some potentially inefficient stuff with the file system, but this hasn't been an issue for me to date. You'll note there again that it's the model that's the bottleneck not the framework.

And in terms of development process, right now my team are having to do some fairly heavy repurposing parts of an existing app without breaking backwards compatibility with other bits, under fairly tight deadlines. While this type of work is never going to be especially easy (in terms of accumulating cruft and introducing architectural complexity), a tool like catalyst really helps achieve the deliverables and keep the customer happy.
I don't have any statistics, but I can tell you that Catalyst handles
50 million pageviews a month for us with just two
web-/application-servers and there's still a lot of room (CPU-load
peaks at around 2 on a quad-core). Your bottleneck will almost always
be your database, most certainly not Catalyst. Comparing Catalyst to
other frameworks in a "Hello world"-style benchmark (as has been done
by some people in the past) really proves absolutely nothing because
your app will probably spend 80% of its time waiting for the database.

Catalyst has a lot of pre-built components/plugins that will help you
with almost every aspect you'll have to deal with:
https://metacpan.org/search?q=catalyst%3A%3Aplugin


These days you should be looking in the Catalyst::Controller, and Catalyst::TraitFor namespaces for extensions, except for the few that really need to mess with the request cycle. Which are still plugins.There's also a whole bunch of Catalyst::Models on CPAN too, as well as the Catalyst::Model::Adaptor family of modules for gluing other arbitrary things into catalyst.
If you're looking for complete, ready-to-use applications (like
Magento) I guess you need to start looking in the direction of PHP
because neither Perl nor Python or Ruby offer that much variety there.
But if what you want is a custom solution, I can whole-heartedly
recommend Catalyst and its ecosystem!
Yes, PHP owns the ready to roll one-size-fits-all-for-one-click-deployment-on-shared-hosting space. I don't see that changing any time soon.
reply

Search Discussions

Discussion Posts

Previous

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 4 of 4 | next ›