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

Kieren Diment diment at gmail.com
Thu Nov 3 20:10:08 GMT 2011


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

> Hi Alec,
> 
> On Thu, Nov 3, 2011 at 11:42 AM, Alec Taylor <alec.taylor6 at gmail.com> 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.





More information about the Catalyst mailing list