In the very recently merged http://trac.sagemath.org/sage_trac/ticket/11599, I updated the scheme homset stuff to new-style parents etc. This is probably the reason for the minor slow-down.
On Tuesday, April 17, 2012 2:20:13 PM UTC-4, Simon King wrote: > > Hi! > > I'm analyzing the computation using prun, and get with some recent > unpatched beta version: > > ncalls tottime percall cumtime percall filename:lineno(function) > 185681 7.071 0.000 34.658 0.000 ell_generic.py:491(__call__) > 572926 6.390 0.000 23.003 0.000 ell_point.py:240(__init__) > 387096 4.836 0.000 13.760 0.000 ell_point.py:639(_add_) > 1 3.649 3.649 56.310 56.310 > ell_rational_field.py:6341(integral_points_with_bounded_mw_coeffs) > 185646 3.264 0.000 3.991 0.000 > ell_rational_field.py:6386(is_approx_integral) > 387120 3.141 0.000 10.223 0.000 scheme.py:336(point) > 185980 2.903 0.000 2.963 0.000 sequence.py:463(__init__) > 185980 2.759 0.000 6.824 0.000 sequence.py:86(Sequence) > 572916 2.573 0.000 3.531 0.000 morphism.py:131(__init__) > 3976022 2.460 0.000 2.460 0.000 {isinstance} > 572931 2.322 0.000 2.843 0.000 > morphism.py:85(is_SchemeMorphism) > 185806 1.907 0.000 19.873 0.000 homset.py:251(__call__) > 185806 1.066 0.000 17.964 0.000 > homset.py:815(_element_constructor_) > ... > > With a very old Sage version (4.6.2), I get > > ncalls tottime percall cumtime percall filename:lineno(function) > 185681 6.662 0.000 18.996 0.000 ell_generic.py:500(__call__) > 387096 4.473 0.000 9.156 0.000 ell_point.py:639(_add_) > 1 3.385 3.385 35.594 35.594 > ell_rational_field.py:6254(integral_points_with_bounded_mw_coeffs) > 185646 3.220 0.000 3.797 0.000 > ell_rational_field.py:6299(is_approx_integral) > 185841 2.801 0.000 2.924 0.000 sequence.py:246(__init__) > 572926 2.794 0.000 8.873 0.000 ell_point.py:240(__init__) > 774298 1.096 0.000 1.436 0.000 ell_point.py:547(__nonzero__) > 185806 1.051 0.000 1.216 0.000 > morphism.py:29(is_SchemeMorphism) > 743248/185920 0.908 0.000 1.556 0.000 {hash} > 387120 0.857 0.000 2.364 0.000 scheme.py:255(point) > 185806 0.790 0.000 8.320 0.000 homset.py:184(__call__) > 1951244 0.740 0.000 0.740 0.000 ell_point.py:335(__getitem__) > 781461/781440 0.560 0.000 2.081 0.000 {method 'is_zero' of > 'sage.structure.element.Element' objects} > 572926 0.548 0.000 0.553 0.000 scheme.py:224(point_homset) > 185757 0.494 0.000 2.086 0.000 homset.py:304(__hash__) > 1128549 0.457 0.000 0.457 0.000 {isinstance} > 201432 0.423 0.000 0.619 0.000 ell_point.py:480(codomain) > 185796 0.408 0.000 0.749 0.000 homset.py:135(value_ring) > 573220 0.385 0.000 0.385 0.000 homset.py:486(codomain) > 185761 0.361 0.000 0.361 0.000 {method 'round' of > 'sage.rings.real_mpfr.RealNumber' objects} > 185757 0.343 0.000 0.682 0.000 ell_generic.py:204(__hash__) > > In other words: I can confirm the slow down, and it seems that time > is wasted in calling homsets. That could be related with category > stuff, but I'm not sure. > > Anyway, I'd say one has to look at how the new _element_constructor_ > method of homsets is different from the old __call__ method. > > Did you have created a ticket already? > > Cheers, > Simon > > -- To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org