#12808: Optimize ClassCallMetaClass using Cython
--------------------------------------------------+-------------------------
       Reporter:  hivert                          |         Owner:  jason       
           Type:  enhancement                     |        Status:  needs_review
       Priority:  major                           |     Milestone:  sage-5.0    
      Component:  misc                            |    Resolution:              
       Keywords:  classcall UniqueRepresentation  |   Work issues:              
Report Upstream:  N/A                             |     Reviewers:              
        Authors:  Florent Hivert                  |     Merged in:              
   Dependencies:                                  |      Stopgaps:              
--------------------------------------------------+-------------------------

Old description:

> When a class {{{C}}} is an instance of {{{ClasscallMetaclass}}}, then for
> any constructor call, the system currently looks for {{{__classcall__}}}
> and {{{__classcall_private__}}} in {{{C}}}. This adds quite an overhead
> and this could be cached, assuming no one modifies {{{C}}} (which seems
> reasonable). Improving this speeds up, in particular, all call to the
> constructor of a subclass of {{{UniqueRepresentation}}}, eg. many
> parents, all categories...

New description:

 When a class {{{C}}} is an instance of {{{ClasscallMetaclass}}}, then for
 any constructor call, the system currently looks for {{{__classcall__}}}
 and {{{__classcall_private__}}} in {{{C}}}. This adds quite an overhead
 and this could be cached, assuming no one modifies {{{C}}} (which seems
 reasonable). Improving this speeds up, in particular, all call to the
 constructor of a subclass of {{{UniqueRepresentation}}}, eg. many parents,
 all categories...

 __Apply__

 [attachment:trac_12808-classcall_speedup2.patch]

--

Comment (by SimonKing):

 I have created an alternative patch (using hg rename). It is smaller than
 the original patch, but should result in identical code. So, either of the
 patches could be used, but I guess the smaller patch is easier to read
 (because one sees more easily the additional differences between
 classcall_metaclass.py and classcall_metaclass.pyx)

 Apply trac_12808-classcall_speedup2.patch

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/12808#comment:14>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to