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.


/J


_______________________________________________
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/

Reply via email to