[Catalyst] Re: OT: Use the CPAN, Luke?
Dave Rolsky
autarch at urth.org
Fri Nov 28 04:40:06 GMT 2008
On Fri, 28 Nov 2008, Johan Lindstr?m wrote:
> At 06:58 2008-11-27, Aristotle Pagaltzis wrote:
>> > According to the Mouse docs, Mouse supports the most commonly
>> > used features of Moose, but runs in 25% of the time. I'm happy
>
> I think that may be referring to startup time (and the Mouse POD refers to
> compile time actually).
>
> In the context of web apps, if you're interested in performance at all,
> you're obviously not going to use CGI. It's gonna be a persistent
> environment. So in that scenario, startup cost is irrelevant.
>
> I benchmarked a few OO/accessor modules, and Mouse was amongst the slowest
> ones. IIRC there's a 4:1 performance difference between Mouse and immutable
> Moose classes (mutable Moose classes is a disaster, a few percent slower than
> Mouse I think it was). So you make Moose classes immutable.
>
> The benchmark wasn't scientific or anything, basically just a new() with some
> of the default values overridden in the call + a getter access. I think Moose
> was something like 20% behind Class::Accessor::Fast and Spiffy was really
> fast.
>
> Like the Moose docs say, you pay for what you use. In this case, when I added
> type constraints they became the most expensive things beyond the basics, but
> still as performant as hand coding the validation.
I'm pretty sure that Moose (especially when making one's classes
immutable) has a much bigger _compile_ time hit than Mouse. OTOH, Moose's
immutabilized constructor is faster than Mouse's.
I think the optimal use case for Mouse is something in a process that gets
started a lot (a CLI app, for example). In that case, the compile time
savings can easily outweight the runtime loss.
-dave
/*============================================================
http://VegGuide.org http://blog.urth.org
Your guide to all that's veg House Absolute(ly Pointless)
============================================================*/
More information about the Catalyst
mailing list