Hi,

I have made a branch topic/unified-method-generation-w-xs, and it is
ready to merge. It makes Class:MOP significantly faster. In my
environment, perl v5.10.1 on i686-linux, it takes 0.150s, while C::MOP
v0.89 takes 0.210s in startup.

It is tested with Moose, KiokuDB, Catalyst,  and various MX modules
including MX::Types, MX::Traits, MX::Role::Parameterized, etc.
Therefore, I believe this is compatible with the master branch. It is
because this  branch includes only the change in the meta object
protocol level, so it probably does not affect the Moose level.

This is a major change in MOP internals. Here is a list of features:

* MOP generates accessors only once as Moose does (the branch name
"unified-method-generation" comes form this feature)
* almost all the MOP built-in accessors are implemented in XS
* MOP generates accessors in XS, instead of use of eval-based generators.
* various optimization in XS

Currently I'm trying the next step, Moose XS (topic/xs-accessor). This
will make Moose applications significantly faster. There is a result
of a benchmark:
- http://gist.github.com/178357
In short, this provides the perfomace of Class::XSAccessor even if you
use lazy stuff and type constraints. However, the topic/xs-accessor
branch needs more discussions, so it is not ready to merge.

Regards,
-- 
Goro Fuji (藤 吾郎)

Reply via email to